ГлавнаяСтатьи и советы → Как работает ключевое слово «this» и когда его следует использовать?
Статьи и советы

Как работает ключевое слово «this» и когда его следует использовать?

Как работает ключевое слово «this» и когда его следует использовать?

В jаvascript ключевое слово this используется для ссылки на текущий контекст выполнения кода. Однако его поведение может быть несколько запутанным, поскольку оно зависит от контекста, в котором оно вызывается. Вот некоторые общие случаи использования this:

This в глобальном контексте:

В глобальном контексте this ссылается на глобальный объект, который обычно является window в браузере или global в среде выполнения Node.js.

console.log(this === window); // Вернет true в браузере


This в контексте функции:

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

const obj = {
  name: 'John',
  greet: function() {
    console.log('Hello, ' + this.name);
  }
};

obj.greet(); // Выведет "Hello, John"

const greetFunction = obj.greet;
greetFunction(); // Выведет "Hello, undefined" или выбросит ошибку в строгом режиме

This в стрелочных функциях:

Стрелочные функции не имеют своего собственного контекста this; вместо этого они наследуют контекст из родительской области видимости.

const obj = {
  name: 'John',
  greet: function() {
    const arrowFunction = () => {
      console.log('Hello, ' + this.name);
    };
    arrowFunction();
  }
};

obj.greet(); // Выведет "Hello, John", потому что стрелочная функция наследует контекст из родительской функции
Использование this может быть удобным, когда требуется обратиться к данным объекта внутри метода этого объекта или когда нужно сослаться на текущий объект в методе конструктора. Однако следует быть внимательным при использовании this, чтобы избежать ошибок и неожиданного поведения из-за его динамической природы.
Добавить комментарий
Кликните на изображение чтобы обновить код, если он неразборчив