Свойства и методы
Часть раздела Объектно-ориентированное программирование путешествия по 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`
Шпаргалка
Классы в JavaScript определяют свойства и методы, общие для всех экземпляров.
Создайте класс с конструктором:
class Car {
constructor(make, model) {
this.make = make;
this.model = model;
}
}Создайте экземпляр, используя new:
const myCar = new Car('Toyota', 'Corolla');
console.log(myCar.make); // Вывод: 'Toyota'Добавьте методы в класс:
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.'Экспортируйте класс:
export class Car {
// определение класса
}Попробуйте сами
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 и экспортНаследование класса Circle14Система управления библиотекой
Проектирование библиотекиКласс Book с использованием композиции6Проект: Простой банковский счет
Класс BankAccountПополнение и снятие средств9Статические методы и свойства
Уровень класса против уровня экземпляраСтатические свойстваСтатические вспомогательные методыЗадание на закрепление