Недавно мы рассмотрели тему ключевого слова «это» в javascript на нашем занятии по программированию в Технологическом институте Джорджии. Эта статья призвана быстро освежить в памяти и дать справку, чтобы быстро понять различные возможности.

ключевое слово "это"

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

Существует четыре правила для «этого» в порядке приоритета, которые можно использовать для определения того, с чем «это» связано.

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

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

Правило 2. Неявное связывание

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

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

Мы можем явно указать, к чему будет привязано ключевое слово this, используя одну из следующих опций: «.call()», «.apply()», «.bind()».

Правило 4. Новая привязка

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

Бонусное правило: стрелочные функции

В стрелочных функциях this сохраняет то же значение, что и его родительская область.

Стрелочные функции имеют два основных преимущества.

1. У них более короткий синтаксис.

2. ‘this’ в стрелочной функции всегда будет принимать значение извне.

Вывод

Значение this обычно определяется контекстом выполнения функции. В глобальной области «это» относится к глобальному объекту. Объект, стоящий перед точкой, — это то, к чему будет привязано ключевое слово this. Мы можем установить значение this явно с помощью call(), bind() и apply(). Когда используется ключевое слово new (конструктор), this привязывается к создаваемому новому объекту. Стрелочные функции не связывают «это» — вместо этого «это» связывается лексически.

Спасибо за чтение.