[РЕШЕНО]Доступ к свойствам объекта из методов объекта
Добрый день, форумчане.
Помогите пожалуйста. Не могу обратиться к свойствам объекта из метода объекта. Есть объект: Код:
var Shape = _onMouseClick current number shape: undefined type shape: undefined Почему я не могу получить значения этих свойств? Спасибо. |
Потому что _onMouseClick не содержит current number shape, type shape. Это же функция события, и this в данном случае будет указывать на объект обработчика событий (ну или как-то так, поправьте меня если я не прав). В качестве решения я бы попробовал:
var Shape = { _this: this, ... _onMouseClick: function(e) { console.log('_onMouseClick'); console.log('current number shape: ' + _this._id); console.log('type shape: ' + _this._type); }, } Хотя по сути должно работать и так: _onMouseClick: function(e) { console.log('_onMouseClick'); console.log('current number shape: ' + _id); console.log('type shape: ' + _type); } P.S.: я не уверен в своих познаниях js, поэтому было бы хорошо если бы кто-то подтвердил или опроверг мой ответ) |
Спасибо. Сейчас сделал через Shape.*, но это конечно не совсем правильно, но мне подходит пока. Еще такой вопрос: у меня при обработке движения мышки отказывают правый и левый клик мыши. В чем может быть проблема?
Обработчик: Код:
_onMouseMove: function(e) Код:
Shape._shape.setRadius(center.distanceTo(e.latlng)); |
Все решил. Оказалось я использовал группу слоев L.featureGroup, и здесь присутствуют свои обработчики мышки, поэтому использовал простейшую группу слоев L.layerGroup и тогда все работает.
|
Часовой пояс GMT +3, время: 01:54. |