Понимание ключевого слова this
Часть раздела Объектно-ориентированное программирование путешествия по JavaScript на Coddy — урок 3 из 56.
Ключевое слово this в JavaScript ссылается на объект, который в данный момент выполняет код. Оно позволяет вам обращаться к свойствам и методам текущего объекта.
Давайте начнем с простого объекта:
let person = {
name: "John",
age: 30,
greet: function() {
console.log("Hello, my name is " + this.name);
}
};В этом примере, когда мы вызываем метод greet:
person.greet();Результат будет:
Hello, my name is JohnЗдесь this.name внутри метода greet ссылается на свойство name объекта person.
Задание
Добавьте метод с названием getStatus в объект player, который возвращает строку с именем и здоровьем игрока, используя ключевое слово this.
Ожидаемый формат вывода:"Knight has 70 health"
Шпаргалка
Ключевое слово this ссылается на объект, который в данный момент выполняет код, позволяя вам получать доступ к его свойствам и методам.
Пример использования this в методе объекта:
let person = {
name: "John",
age: 30,
greet: function() {
console.log("Hello, my name is " + this.name);
}
};
person.greet(); // Output: Hello, my name is JohnВнутри метода this.name ссылается на свойство name объекта person.
Попробуйте сами
const player = {
name: "Knight",
health: 100,
takeDamage: function(damage) {
this.health -= damage;
},
// TODO: Добавьте здесь метод getStatus, который возвращает строку с именем и здоровьем игрока
};
// Тест
player.takeDamage(30);
console.log(player.getStatus()); // Должно вывести: "Knight has 70 health"В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Объектно-ориентированное программирование
1Объекты и ключевое слово this
Краткий обзор: ОбъектыДобавление методов в объектыПонимание ключевого слова thisФункции-конструкторыКлючевое слово newИтоговое испытание7Наследование и ключевое слово extends
НаследованиеОтношение «is-a»Ключевое слово extendsМетод super()Наследование свойств и методовИтоговое испытание10Полиморфизм
Что такое полиморфизм?Переопределение унаследованных методовИспользование superИтоговое задание13Композиция против наследования
Отношения «has-a» и «is-a»Ограничения глубокого наследованияСоздание объектов2Организация кода
Что такое модули?Экспорт с помощью exportИмпорт с помощью importDefault против именованных экспортов5Инкапсуляция и доступ
ИнкапсуляцияПубличные и приватные поля классовПриватные методыЗадание на повторение8Организация кода ООП
Организация классов в модули11Проект: Отрисовщик фигур
Настройка: Класс Shape и экспортНаследование класса Circle14Система управления библиотекой
Проектирование библиотекиКласс Book с использованием композиции6Проект: Простой банковский счет
Класс BankAccountПополнение и снятие средств9Статические методы и свойства
Уровень класса против уровня экземпляраСтатические свойстваСтатические вспомогательные методыЗадание на закрепление