В JavaScript, объекты создаются для представления реальных сущностей, таких как заказы, пользователи и т.д. Например:
В реальном мире вы поступаете так: входите в систему, выходите из системы, выбираете что-то из корзины и т.д.
В JavaScript вы можете представить действия функциями в свойствах.
Примеры методов
Первым шагом при изучении методов объектов JavaScript должно быть изучение того, как “сказать привет”. Пример будет выглядеть так:
Таким образом, сайт может отвечать только после его вызова.
Конкретная функция, которая является свойством объекта, называется методом. В данном примере, welcome - это метод объекта site.
Более того, предварительно объявленная функция может быть использована как метод. Для этого нужно вызвать следующую команду:
Описание объектно-ориентированного программирования
Объектно-ориентированное программирование (в сокращении ООП) направлено на написание кодов с использованием объектов для представления сущностей.
ООП можно описать как отдельную науку. Было проведено множество исследований, чтобы полностью изучить, как выбирать подходящие сущности, как организовать связь между ними и многое другое. Это совершенно новая архитектура.
Краткая форма метода
Вы можете использовать краткий синтаксис для методов в объекте, как в этом случае:
В этом примере, вы можете видеть, что слово “function” было опущено, и вместо этого написано просто welcome. Конечно, могут быть отличия, связанные с наследованием объектов. Тем не менее, в большинстве случаев предпочтительно использовать более короткий синтаксис.
“this” в методах объектов
Обычно для выполнения своей работы метод объекта должен обладать информацией, хранящейся в объекте.
Например, код, который находится внутри site.welcome(), может потребоваться site.name.
Метод может использовать ключевое слово "this" для доступа к объекту.
Объект "перед точкой" должен быть значением "this".
Например, вы можете вызвать метод следующим образом:
В приведенном выше примере, при выполнении site.welcome(), site будет значением "this".
У вас есть возможность получить доступ к объекту без использования "this". Просто обратитесь к нему через внешнюю переменную, как это показано здесь:
Однако, примите во внимание, что такие коды могут быть ненадежными. В случае копирования site в другую переменную (например, anotherSite = site) перезапись site чем-то другим, вы будете направлены к неправильному объекту.
Вот пример:
"this" может быть не привязанным
Обычно, ключевое слово JavaScript "this" можно использовать в любой функции в отличие от других языков программирования.
В следующем примере нет синтаксических ошибок:
function welcome() {
console.log(this.name);
}
В следующем примере, одна и та же функция аккредитована двум разным объектам, и включает различные отдельные "this" в вызовах:
Таким образом, здесь используются простые шаги: Если вы сначала вызвали obj.func(), то вам нужно запустить this является obj во время вызова func. Это означает, что в данном примере используется либо site, либо anotherSite.
Вызов без объекта: this == undefined
Функцию даже можно вызвать без объекта, как это показано ниже:
В приведенном выше примере, this является undefined в строгом режиме. При попытке ввести this.name может появиться ошибка.
Значение "this" в нестрогом режиме будет глобальным объектом.
Обычно подобный вызов может вызвать ошибку программирования. Если в функции есть this, она должна вызываться в контексте объекта.
Последствия не привязанного "this"
Если вы уже знакомы с другим языком программирования, возможно, вы знакомы с идеей "привязанного this", в которой методы, описанные в объекте, всегда получают "this", ссылающийся на объект.
"this" в JavaScript можно описать как свободный. Следовательно, его значение не зависит от того, где был подтвержден метод. Но это больше зависит от объекта "перед точкой".
Данное понятие "this" имеет как преимущества, так и недостатки. С одной стороны, вы можете использовать функцию для различных объектов. С другой стороны, чем больше гибкости, тем больше шансов совершить ошибки. Вашей целью должно быть изучение того, как работать с этим, чтобы извлекать выгоду и избегать ошибок.
Стрелочные функции не имеют "this"
Стрелочные функции уникальны, так как они не имеют своего собственного "this". В случае, если вы начнете обращаться к нему из такой функции, он будет взят из внешней "нормальной" функции.
В следующем примере, arrow() использует это из метода: site.welcome().
Специальный метод стрелочной функции особенно полезен, когда вы не хотите иметь отдельный "this", но хотите взять его из контекста за пределами.
Время Викторины: Проверьте Свои Навыки!
отовы проверить свои знания? Погрузитесь в наши интерактивные викторины для более глубокого понимания и веселого способа закрепить знания.