js. Стрелочная функция и this [дубликат]

320
31 января 2017, 23:21

На данный вопрос уже ответили:

  • Потеря контекста вызова 3 ответа

Здравствуйте,

раньше я писал так:

myElem.onfocus = function () { 
  magicWithMyElem(this); 
}

Теперь, узнав как посокращать код с функциональными выражениями, везде исправил на:

myElem.onfocus = () => { 
  magicWithMyElem(this); 
}

Столкнулся с тем, что раньше в this было myElem, а теперь this возвращает window

Подскажите что делать

Answer 1

Это называется стрелочная функция.
Она отличается от обычной рядом особенностей:

  • Нет своего this, arguments (берётся от предка, Вы исполняете код в глобальном скоупе, а там this указывает на window).
  • Не может быть генератором.
  • Нет возможности вызова с new.
READ ALSO
Javascript. Что происходит в этом куске кода?

Javascript. Что происходит в этом куске кода?

Первый раз вижу такой кодне пойму, что тут происходит?

307
counter для нескольких строк

counter для нескольких строк

Есть такой код:

348