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

Готовлюсь к собеседованиям и систематизирую знания. Сегодня this и его контекст.

Ключевое слово this указывает на объект, конкретное значение которого зависит от текущего контекста.

Глобальный "this" При обращении из глобального контекста к this он будет указывать на глобальный объект. Для браузеров — это объект window.При обращении из глобальной функции значение this будет таким же, потому что такая функция принадлежит объекту window.

function showThis() { console.log(this) } showThis(); // Будет выведен объект Window.

Стоит упомянуть, что к глобальному объекту можно также обратиться из любого контекста с помощью глобального свойства globalThis.

"this" в объекте При обращении к this из метода объекта, это ключевое словобудет указывать на этот объект.

const car ={ name: "Toyota Corolla", year: 2017, getInfo() { console.log(this.name, this.year) }}; car.getInfo();// Выведет: Toyota Corolla 2017.

"this" и стрелочная функция.

Стрелочные функции отличаются от обычных в плане работы this. Они не имеют своего "собственного" this, а берут его из внешней функции, в которой определена эта стрелочная функция. Если стрелочная функцияне вложена в обычную функцию, то значением this будет глобальный объект.

Методы call, apply,bind Метод call() позволяет вызвать функцию с указанным значением контекста this.

func.call(context,arg1, arg2, ...)

В качестве аргументов метод call() принимает:

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

Метод apply() работает практически так же, как call() только принимает параметры в виде массива.

func.apply(context, [arg1, arg2, ...])

Метод bind() отличается от них тем, что только задает контекст this, но не вызывает функцию. При этом он возвращает новую функцию, у которой задан контекст this.

#javascript #frontend #собеседования#вопросы_для_собеседования #войтивайти