Свойства и методы
Часть раздела Объектно-ориентированное программирование путешествия по JavaScript на Coddy. Урок 13 из 56.
class в JavaScript позволяют определить properties и method, которые будут общими для всех экземпляров class.
Create класс со свойствами:
class Car {
constructor(make, model) {
this.make = make;
this.model = model;
}
}При создании экземпляра constructor устанавливает эти properties:
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, включающий следующее:
- constructor, который принимает параметры
title,authorиpagesи устанавливает их в качестве properties. - method под названием
getInfo, который возвращает string в формате: “Title: [title], Author: [author], Pages: [pages]” - Экспортируй class, добавив `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Статические методы и свойства
Уровень класса против уровня экземпляраСтатические свойстваСтатические вспомогательные методыЗадание на закреплениеПотренируйтесь самостоятельно: Онлайн-компилятор JavaScript