Junior
38
questionbank

Что выведется в консоли, если использовать this в console.log?

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

Зависит от контекста вызова console.log и строгого режима JavaScript ("use strict").

В глобальном контексте (за пределами функций и модулей):

  • В нестрогом режиме ("use strict" отсутствует или объявлен в функции): this будет ссылаться на глобальный объект (window в браузере, global в Node.js).
  • В строгом режиме: this будет undefined.

Внутри функции:

  • В нестрогом режиме: this будет ссылаться на глобальный объект, если функция вызвана как обычная функция (myFunction()). Если функция вызвана как метод объекта (myObject.myMethod()), this будет ссылаться на объект (myObject). Если функция используется как конструктор (new MyClass()), this будет ссылаться на новый экземпляр объекта.
  • В строгом режиме: this будет undefined, если функция вызвана как обычная функция. В остальных случаях (метод объекта, конструктор) поведение такое же, как в нестрогом режиме.

Внутри стрелочной функции (=>):

  • this лексически наследуется из окружающего контекста. Это означает, что значение this внутри стрелочной функции будет таким же, как и во внешней обычной функции или в глобальном контексте, где была объявлена стрелочная функция, независимо от того, как она вызвана. Стрелочные функции не связывают this со своим собственным контекстом вызова.

Пример:

javascript