Показать сообщение отдельно
  #4 (permalink)  
Старый 10.08.2016, 06:36
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Сообщение от renatdmit
this.startDrawing такая же переменная
Которой присвоена безымянная функция. А ТС привык декларировать подпрограммы function name(){}, когда расположение такой декларации в коде николебет.

ТС, а расположение переменных - колебет. Просто перемести вниз листенеры и все.

ЗЫ Нет, не все. Господин профессор Rise напоминает, что this внутри калбека листенера будет элементом, на котором висит листенер. Так вот, биндить объектный this внутрь калбека тут просто необходимо, но приятнее иметь оба this'а, ради чего просто присвой внутренней переменной с любым именем this объекта, например

var the = this;

и замени в калбеке this.startDrawing все this на the

Решение с the=this принимается исходя из контекста. Если this как элемент точно не нужен - бинди, а если нужен, например там роутер и надо проверять if(this===e.target) то присваивай.

И последнее. Я совершенно уверен, что практически все проперти и методы в этом объекте можно сделать приватными, а значит никаких this вообще не надо. Функция просто развешает калбеки в своем скопе и все будет работать само по себе.

Последний раз редактировалось warren buffet, 10.08.2016 в 06:49.
Ответить с цитированием