🤔 Вопрос с собеседования
Что выведет этот код?
❤️ — 42 и 42
🔥 — 42 и undefined
👍 — undefined и undefined
👇 Правильный ответ (нажми, чтобы прочитать):
42
undefined
Обычная функция получает this в зависимости от способа вызова:
obj.regular();
Здесь this указывает на obj, поэтому возвращается 42.
Стрелочная функция не имеет собственного this. Она берёт его из внешнего контекста, где объект создавался. Поэтому this.value не относится к obj и обычно даёт undefined.
🔘 Если нужна стрелочная функция с контекстом объекта, можно использовать обычную функцию или явно привязать this:
const obj = {
value: 42,
arrow: function () {
return this.value;
},
};
📍 Навигация: [Вакансии]
🐸 Библиотека фронтендера
#career_merge
Post #8322
1.13K

- 🔥 33
- ❤ 1
- 👍 1
- 🥰 1