Что это?

this — это ключевое слово в Javascript, которое относится к объекту и имеет разные значения в зависимости от его контекста.

Когда определяется контекст этого?

Контекст this определяется контекстом его выполнения, то есть средой, в которой выполняется код. Итак, мы можем рассчитывать на то, что this имеет значение, откуда оно было вызвано? Не так много. Но всегда есть объяснение, почему ваш this имеет такую ​​ценность. Если вы запомните приведенные ниже правила и привыкнете к инструментам, которые Javascript предоставляет для this, это поможет вам манипулировать this так, чтобы оно сохраняло нужное вам значение. Лучшее, что вы можете сделать, это использовать console.log() для вашего this каждый раз, когда вы не уверены в его значении.

Джейн Коста, королева этого, сказала мне, что этот похож на перелетную птицу. Он перескакивает из контекста в контекст, меняя свое значение в зависимости от среды. Вот эта птица. Вместе с нами он пройдет через несколько разных контекстов this.

Правила

1. Правило привязки по умолчанию

Первым правилом этого является Правило привязки по умолчанию. Это правило гласит, что если this используется открыто, вне какого-либо конкретного объекта, оно привязывается к глобальному контексту. Это означает, что this содержит значение глобального объекта. Например, это, введенное прямо в консоль Chrome, является окном, потому что окно является глобальным объектом браузера.

ПРИМЕЧАНИЕ. Когда this используется вне какого-либо объекта, строгий режим определяет this как неопределенное, а не как глобальное, чтобы сделать видимой потенциальную скрытую ошибку в вашем коде.

2. Правило неявной привязки

Второе правило этого — это Правило неявной привязки. Это правило гласит, что если this вызывается в методе определенного объекта, значением this является этот конкретный объект.

3. Правило явного связывания

Третье правило этого — это правило явного связывания. Это правило гласит, что когда this назначается с помощью bind(), call() или apply(), значением this является объект, передаваемый в качестве первого параметра.

4. Новое правило связывания

Четвертое правило этогоНовое правило привязки. Это правило гласит, что при использовании нового ключевого слова (в функции-конструкторе) this ссылается на вновь созданный объект.

А как насчет ФУНКЦИЙ СТРЕЛКИ?

Обычно мы можем предположить, что это — перелетная птица, значение которой меняется в зависимости от окружающей среды, когда она перелетает из контекста в контекст. Однако при использовании в стрелочной функции this представляет собой черепаху, несущую с собой свое окружение (свою оболочку) из того места, где она была определена. Это эта черепаха, несущая свою эту оболочку из того места, где она определена, куда бы она ни шла.

Взгляните на эти диаграммы, которые я сделал, если хотите быстро обновить информацию.