| предупреждение: this шорты могут быть не такими короткими: D

this - одна из самых запутанных концепций javascript, он ведет себя немного иначе по сравнению с другими языками. Значение этого ключевого слова зависит от того, в каком контексте (глобальном или объектном) вызывается функция.

При работе с ключевым словом this необходимо учитывать несколько правил. Приведенные ниже примеры объясняют работу this в различных сценариях.

  1. Глобальный контекст - в глобальном контексте значение ключевого слова this относится к глобальному объекту, то есть к объекту window. Ознакомьтесь с приведенным ниже примером, здесь показан результат true

2. Контекст функции. В случае функций значение этого ключевого слова зависит от того, как функция вызывается. Обычно в нестрогом режиме, если значение this не установлено при вызове функции, по умолчанию используется глобальная область видимости. Однако мы можем явно установить значение для этого с помощью функции call, bind или apply.

3. Контекст класса - поведение классов аналогично функциям, поскольку классы являются внутренними функциями. Основное отличие состоит в том, что классы имеют свой собственный this объект, и все свойства класса привязаны к нему. Все нестатические методы внутри класса добавляются к его прототипу.

Подобно функциям, мы можем предоставить новый контекст, используя новый класс, но это применимо только к несвязанным методам, связанные методы остаются неизменными. Обратите внимание на то, как это не влияет на связанный метод.

4. Функция стрелки. Наконец, если функция является функцией стрелки, она игнорирует все вышеперечисленные правила и берет значение this из того места, где оно определено.

Это было нелегко и много правил, но таков наш любимый Javascript. Для более глубокого изучения обратитесь к MDN.

- На сегодня все