Найти тему
DevX

JavaScript. Ключевое слово this.

JavaScript
JavaScript

В JavaScript, ключевое слово `this` представляет текущий объект, относительно которого выполняется выполнение кода. Значение `this` зависит от контекста вызова функции и может быть определено по-разному в разных ситуациях.

Контекст вызова `this` может быть определен четырьмя различными способами:

1. Глобальный контекст:

   В глобальном контексте (вне функций), `this` указывает на глобальный объект, который в браузерах является объектом `window`.

Выводим объект window в среде браузера
Выводим объект window в среде браузера

2. Функция:

   При вызове функции без контекста или в режиме "use strict", `this` будет равен undefined.

Undefined при вызове функции без контекста или в режиме “use strict”
Undefined при вызове функции без контекста или в режиме “use strict”

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

3. Метод объекта:

   Когда функция вызывается как метод объекта, `this` указывает на сам объект, в котором вызывается метод.

Вывод “Hello John” при вызове функции в контексте объекта obj
Вывод “Hello John” при вызове функции в контексте объекта obj

   В этом примере при вызове метода `sayHello` объекта `obj`, `this` ссылается на сам объект `obj`, поэтому `this.name` дает доступ к свойству `name` в объекте.

4. Конструктор:

   Внутри конструктора `this` используется для ссылки на новый экземпляр объекта, который создается при помощи оператора `new`.

Присваиваем значение “John” новому объекту person с помощью конструктора и ключевого слова this
Присваиваем значение “John” новому объекту person с помощью конструктора и ключевого слова this

   При создании нового экземпляра объекта с помощью оператора `new`, `this` указывает на этот новый объект. Затем можно использовать `this` для присваивания свойств и методов этому объекту.

Использование `this` в JavaScript может быть сложным и требует понимания контекста вызова функции. Это очень важное понятие, так как позволяет обращаться к свойствам и методам текущего объекта.