Показать сообщение отдельно
  #1 (permalink)  
Старый 02.03.2018, 13:59
Аспирант
Отправить личное сообщение для Andrew K Посмотреть профиль Найти все сообщения от Andrew K
 
Регистрация: 15.11.2014
Сообщений: 50

Получение this конструктора в функции прототипа
Здравствуйте. У меня есть конструктор Body где в качестве обработчика перемещения мыши по <body> задается прототипная функция mouseMove. Эта функция при каждом вызове должна изменять свойство num в конструкторе Body. Как получить this конструктора (а через него и свойство num) в обработчике?

Я пробовал поставить ссылку на this через замыкание, но из этого ничего не вышло потому что this в самовызывающейся функции равен undefined, в стрелочной функции Window, а в обработчике <body>.

let Body = function () {
    this.num = 1;

    document.body.addEventListener('mousemove', this.mouseMove);
};


Body.prototype.mouseMove = (function () {
    let num = this.num;

    return function () {
        console.log(num++);
    }
})();


new Body();

Последний раз редактировалось Andrew K, 02.03.2018 в 14:02.
Ответить с цитированием