Middle
86
questionbank

Расскажи о контексте функций в JavaScript.

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

Контекст выполнения функции (this) в JavaScript определяет, как функция вызывается и какие значения доступны внутри нее. Контекст динамически изменяется в зависимости от способа вызова:

  • Глобальный контекст: Вне функций, this ссылается на глобальный объект (window в браузере, global в Node.js).
    javascript
  • Контекст функции:
    • Стандартный вызов: В нестрогом режиме this внутри функции ссылается на глобальный объект (если функция не метод объекта). В строгом режиме ("use strict";) this будет undefined.
      javascript
    • Вызов как метод объекта: this ссылается на объект, частью которого является метод.
      javascript
    • Вызов с new (конструктор): Создает новый объект, который становится значением this внутри функции-конструктора, и возвращает этот объект.
      javascript
    • Явное указание контекста (call, apply, bind):
      • call(thisArg, arg1, arg2, ...): Вызывает функцию с указанным this и аргументами, перечисленными по отдельности.
      • apply(thisArg, [argsArray]): Вызывает функцию с указанным this и аргументами в виде массива.
      • bind(thisArg, arg1, arg2, ...): Возвращает новую функцию, у которой this навсегда привязан к thisArg и привязанным аргументам.
      javascript
  • Стрелочные функции: Не имеют собственного контекста this. Они захватывают this из объемлющей лексической области видимости (той, в которой они были определены).
    javascript