Задать вопрос
@AndreyKolmagorov

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

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

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


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

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

Похожие вопросы