Как работает ключевое слово «это»? Приведите несколько примеров кода.
Ключевое слово this
оценивается как значение ThisBinding
текущего контекста выполнения. ThisBinding
— это то, что интерпретатор JavaScript поддерживает при оценке кода JavaScript, как специальный регистр ЦП, который содержит ссылку на объект. Интерпретатор обновляет ThisBinding
всякий раз, когда устанавливается контекст выполнения в одном из трех различных случаев:
- Начальный глобальный контекст выполнения (при наличии
<script>
тегов) - Ввод кода оценки: прямой вызов
eval
сохраняетThisBinding
вызывающего контекста выполнения, косвенные вызовыeval
задаютThisBinding
глобальному объекту, как если бы он выполнялся в начальном глобальном контексте выполнения - Ввод кода функции: при вызове функции. Если функция вызывается для объекта, например, в
obj.myMethod()
, тоThisBinding
устанавливается для объекта. В большинстве других случаевThisBinding
устанавливается в глобальный объект (за исключением случаев, когда указано в аргументахapply
/call
/bind
).
Примеры: