![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| vlarry |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 153 Регистрация: 16.8.2009 Репутация: нет Всего: нет |
Добрый день, форумчане.
Помогите пожалуйста. Не могу обратиться к свойствам объекта из метода объекта. Есть объект:
Вывод при клике мыши: _onMouseClick current number shape: undefined type shape: undefined Почему я не могу получить значения этих свойств? Спасибо. Это сообщение отредактировал(а) vlarry - 14.1.2016, 17:18 |
|||
|
||||
| Cheloveck |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1578 Регистрация: 26.7.2008 Где: Тула Репутация: нет Всего: 32 |
Кури, что есть this в JavaScript`е. У тебя оно везде неверно используется!
-------------------- ![]() |
|||
|
||||
| ksnk |
|
||||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 84 Всего: 386 |
vlarry, Дело в том, что Javascript - СЛИШКОМ простой язык
Чтобы правильно установить значение this при вызове - его нужно указать явно! xxx.yyy() - вот так, например , при вызове метода yyy объекта xxx переменная this будет указывать в xxx. А вот в конструкции
исполнитель javascript тупо потеряет значение переменной this, так как это значение не будет указано явно. Решений может быть несколько. Например - "замкнуть" значение нужного нам this в теле функции.
Неочевидность замыкания в JS тоже является следствием простоты языка -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
||||
|
|||||
| Cheloveck |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1578 Регистрация: 26.7.2008 Где: Тула Репутация: нет Всего: 32 |
Hint: внутри метода используй Shape.* вместо this.*
-------------------- ![]() |
|||
|
||||
| vlarry |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 153 Регистрация: 16.8.2009 Репутация: нет Всего: нет |
Спасибо. Я так и сделал, через Shape. Появился такой вопрос: при обработке движения в методе Shape._onMouseMove
другие обработки (левый и правый клик мышки) перестают работать. Где может быть ошибка? Вот обработка движения:
Для рисования использую библиотеку leaflet. Спасибо. Добавлено через 1 минуту и 14 секунд Если закомментировать строку
то все отрабатывается, а иначе нет. |
||||
|
|||||
| vlarry |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 153 Регистрация: 16.8.2009 Репутация: нет Всего: нет |
Все решил. Оказалось я использовал группу слоев L.featureGroup, и здесь присутствуют свои обработчики мышки, поэтому использовал простейшую группу слоев L.layerGroup и тогда все работает.
|
|||
|
||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |