Свойства и методы
Часть раздела Объектно-ориентированное программирование путешествия по JavaScript на Coddy — урок 13 из 56.
Классы в JavaScript позволяют нам определять свойства и методы, которые будут общими для всех экземпляров класса.
Создайте класс со свойствами:
class Car {
constructor(make, model) {
this.make = make;
this.model = model;
}
}При создании экземпляра конструктор устанавливает следующие свойства:
const myCar = new Car('Toyota', 'Corolla');
console.log(myCar.make); // Вывод: 'Toyota'
console.log(myCar.model); // Вывод: 'Corolla'Добавьте метод в класс:
class Car {
constructor(make, model) {
this.make = make;
this.model = model;
}
getDescription() {
return `This car is a ${this.make} ${this.model}.`;
}
}Теперь мы можем вызвать этот метод у любого экземпляра:
const myCar = new Car('Toyota', 'Corolla');
console.log(myCar.getDescription()); // Вывод: 'This car is a Toyota Corolla.'Задание
Создайте класс с именем Book в файле book.js со следующим содержимым:
- Конструктор, который принимает параметры
title,authorиpagesи устанавливает их в качестве свойств. - Метод с именем
getInfo, который возвращает строку в формате: “Title: [title], Author: [author], Pages: [pages]” - Экспортируйте класс, добавив `export` перед объявлением `class`
Попробуйте сами
import { Book } from './book.js';
// Тест (не изменяйте эту часть)
const book = new Book("JavaScript Basics", "John Doe", 200);
console.log(book.getInfo());
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Объектно-ориентированное программирование
1Объекты и ключевое слово this
Краткий обзор: ОбъектыДобавление методов в объектыПонимание ключевого слова thisФункции-конструкторыКлючевое слово newИтоговое испытание7Наследование и ключевое слово extends
НаследованиеОтношение «is-a»Ключевое слово extendsМетод super()Наследование свойств и методовИтоговое испытание10Полиморфизм
Что такое полиморфизм?Переопределение унаследованных методовИспользование superИтоговое задание13Композиция против наследования
Отношения «has-a» и «is-a»Ограничения глубокого наследованияСоздание объектов2Организация кода
Что такое модули?Экспорт с помощью exportИмпорт с помощью importDefault против именованных экспортов5Инкапсуляция и доступ
ИнкапсуляцияПубличные и приватные поля классовПриватные методыЗадание на повторение8Организация кода ООП
Организация классов в модули11Проект: Отрисовщик фигур
Настройка: Класс Shape и экспортНаследование класса CircleПереопределение и метод AreaСтатический счетчик фигур14Система управления библиотекой
Проектирование библиотекиКласс Book с использованием композицииВалидация автора книги6Проект: Простой банковский счет
Класс BankAccountПополнение и снятие средствБаланс как приватное поле9Статические методы и свойства
Уровень класса против уровня экземпляраСтатические свойстваСтатические вспомогательные методыЗадание на закрепление