@AndreyKolmagorov

Почему в одном объекте значение this у разных методов отличается?

let obj = {
	a: () => {
		console.log(this);
	},
	b() {
		console.log(this);
	}
};

obj.a();  // window
obj.b();  // obj


Недавно изучаю JS и столкнулся с таким непониманием.
Почему при вызове метода a(), this ссылается на объект window, а при вызове - b(), на объект obj?
  • Вопрос задан
  • 184 просмотра
Решения вопроса 2
rockon404
@rockon404
Frontend Developer
a - стрелочная функция, использует значение this окружающего контекста
b - метод объекта, значением this является объект перед «точкой», в контексте которого вызван метод.
Ответ написан
Комментировать
Функции
Стрелочные функции не имеют своих this и arguments, при обращении получают их из окружающего контекста.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы