JS: как использовать ключевое слово ‘this’

5 минут на чтение

Часто у начинающих программистов при написании кода JS возникают ошибки из-за неправильного использования ключевого слова this. Применение данного ключевого слова в JS обладает некоторыми особенностями по сравнению с другими языками. Значение this определяется в зависимости от того, в каком контексте применяется.

Содержание
  1. Как использовать this?
  2. В глобальном контексте
  3. В контексте функции
  4. В конструкторе
  5. Call/Apply
  6. В методе объекта
  7. В обработчике событий

Как использовать this?

Рассмотрим что же стоит за this в JS:

  • в глобальном контексте (т.е. вне функций) – ссылается на глобальный объект,
  • в контексте функции – ссылается на глобальный объект, в строгом режиме (“use strict mode”) значение this не определено (undefined),
  • в конструкторе – если функция вызывается как конструктор объекта ( с помощью new), this ссылается на создаваемый новый объект,
  • при вызове функции с помощью методов call(object, parameters)/apply(object, parameters) – this ссылается на передаваемый объект object, что позволяет задать значение this,
  • в методе объекта – принимает значение объекта, к которому применен метод,
  • в обработчике событий – ссылается на элемент, событие которого обрабатывается.

В глобальном контексте

В браузере глобальным является объект window:

В контексте функции

Также как и в предыдущем контексте ссылается на глобальный объект, в нашем случае window:

В конструкторе

Связан с создаваемым объектом:

Call/Apply

Ссылается на передаваемый в параметрах объект:

В методе объекта

This указывает на объект, к которому применен метод:

В обработчике событий

Указывает на элемент, по которому отработало событие:

 

Facebook Vk Ok Twitter Telegram

Похожие записи:

Данная задача имеет множество решений: в JS есть метод для перебора массива forEach, проверки every, фильтрации массива filter, трансформации массива map, последовательной обработки reduce. Кроме перечисленных методов для этих целей также можно использовать ци...
Ежедневно миллионы пользователей переходят с одного сайта на другой в поисках нужной для них информации. Но задумываются ли они о том, как же создаются эти сайты? Если да, то следующий очевидный вопрос - как научиться создавать сайты? Здесь, как и в любом друг...
Алгоритмы в программирование это самая важная часть, так как даже на олимпиадах по программированию тестируют на написание алгоритмов. Обычно они состоят из циклов.Для того чтобы обучиться этому мастерству нужно знать как минимум 1 язык программирования наприм...