TGViewer
Руслан Куянец | Reactify Руслан Куянец | Reactify @reactify_it · 6.43K subscribers
Post #1137 1.48K

Forwarded from Tech | YeaHub & Reactify

#tech #JavaScript #this
Стрелочные функции и this

💡 Стрелочные функции не имеют своего собственного this. Вместо этого они захватывают this из окружающего контекста в момент своего создания. Это поведение называется "лексическим this".


function Animal(name, sound) {
this.name = name;
this.sound = sound;
this.makeSound = () => {
console.log(`${this.name} says ${this.sound}`);
};
}

const dog = new Animal('Dog', 'Woof');
dog.makeSound(); // 'Dog says Woof'


✍️ Когда вы используете стрелочную функцию в конструкторе, this внутри стрелочной функции указывает на экземпляр объекта, который создается с помощью этого конструктора.

Пример использования в методе объекта:

💡 Если стрелочная функция определена как метод объекта (вне конструктора), то this внутри стрелочной функции будет зависеть от контекста, в котором эта стрелочная функция была определена, а не от контекста вызова.


const obj = {
name: 'Dog',
sound: 'Woof',
makeSound: () => {
console.log(`${this.name} says ${this.sound}`);
}
};

obj.makeSound(); // undefined says undefined


✍️ В этом примере стрелочная функция makeSound определена в глобальном контексте (или контексте модуля в Node.js), где this будет undefined (в строгом режиме) или объектом глобального контекста (в нестрогом режиме), но не объектом obj.

Итог:
✔️ В конструкторе: Стрелочная функция захватывает this из контекста вызова конструктора, что позволяет правильно ссылаться на свойства экземпляра объекта.
✔️ В методе объекта: Стрелочная функция захватывает this из контекста своего определения, что часто приводит к undefined или некорректному значению this.

Автор: @reactify_IT

👍 Вступай в сообщество
  • 👍 9
  • 🔥 4
  • 😢 2
  • 💯 2
More from @reactify_it
  1. Oct 8, 2026Последний месяц жестко марафонил :) С утра до вечера, без выходных. Решил наконец подвести…
  2. Oct 2, 2026Что вообще для меня значит ИТ-АДАПТАЦИЯ? Это — РАБОТА ЛЮБОЙ ЦЕНОЙ. Сейчас такое время, ког…
  3. Oct 1, 2026А тем временем цены растут. Бесплатный ChatGPT, во-первых, как будто отупел, во-вторых, ли…
  4. Sep 30, 2026Ребята, если у вас уже есть опыт, но вы чувствуете, что он выглядит «непродающим» в резюме…
  5. Sep 29, 2026👩‍💻 ВСЯ инфраструктура за 30 минут: Kubernetes, ArgoCD, Grafana, CI/CD https://www.youtu…
  6. Sep 28, 2026В общем, что-то такое получилось 😁 Превью сделано нейронкой, но буду переделывать с помощ…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →