это в JavaScript

Опубликовано: 14 Декабря, 2021

this в JavaScript часто сбивает с толку новичков в этом языке. Отчасти эта путаница проистекает из того факта, что this в JavaScript обрабатывается иначе, чем в других языках, таких как Java или self в Python.

Понимание this абсолютно необходимо для понимания более сложных концепций в JavaScript или для чтения и написания кода JavaScript, поэтому мы проведем эту статью, пытаясь прояснить, что это на самом деле означает в JavaScript.

Мы посвятим большую часть статьи изучению this вопроса со ссылкой на функции в JavaScript, поэтому сначала рассмотрим факт о функциях JavaScript, который поможет нам сделать это лучше.

this и функции

В JavaScript функции по сути являются объектами. Как и объекты, они могут быть присвоены переменным, переданы другим функциям и возвращены из функций. И, как и объекты, у них есть свои свойства. Одно из этих свойств this .

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

Примечание: this всегда содержит ссылку на один объект, который определяет текущую строку контекста выполнения кода.
Прежде чем мы углубимся в то, как this ведет себя в функциях, давайте посмотрим, как это ведет себя вне их:

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

Например, если вы открыли консоль браузера и ввели в нее следующие строки и нажали return / enter:
console.log(this)

Вы увидите, что объект Window регистрируется в консоли, потому что глобальный объект в среде выполнения браузера, такой как среда выполнения Chrome, является объектом Window.
Однако внутри функции глобальный контекст может больше не присутствовать, и функция может иметь свой собственный определенный контекст и, следовательно, другое значение this . Чтобы понять это, вернемся к функциям:

Функции в JavaScript можно вызывать несколькими способами:

1. вызов функции
2. вызов метода
3. вызов конструктора

это с вызовом функции:

Вызов функции относится к процессу вызова функции с использованием ее имени или выражения, которое оценивает объект функции, за которым следует набор открывающих и закрывающих первых скобок (включение скобок указывает на то, что мы просим движок JavaScript немедленно выполнить функцию. ).

Например: