Функции-конструкторы
Часть раздела Объектно-ориентированное программирование путешествия по JavaScript на Coddy — урок 4 из 56.
Функции-конструкторы — это специальные функции в JavaScript, которые позволяют создавать множество объектов с одинаковой структурой и поведением.
Определите функцию-конструктор для Person:
function Person(name, age) {
this.name = name;
this.age = age;
this.greet = function() {
return "Hello, my name is " + this.name;
};
}Создайте новый объект Person, используя конструктор:
const john = new Person("John", 30);
const tyler = new Person("Tyler", 35);После выполнения приведенного выше кода john представляет собой объект со свойствами:
// объект john содержит:
{
name: "John",
age: 30,
greet: function() { return "Hello, my name is John"; }
}Доступ к свойствам и вызов методов:
console.log(john.name); // Выводит: John
console.log(john.greet()); // Выводит: Hello, my name is JohnЗадание
- Создайте функцию-конструктор с именем
Book, которая принимает три аргумента:
title(String)author(String)pages(Number)
Функция должна установить их в качестве свойств создаваемого объекта.
2. Добавьте метод с именем getSummary, который возвращает строку с информацией о книге: this.title + " was written by " + this.author + " and has " + this.pages + " pages";
Шпаргалка
Функции-конструкторы создают несколько объектов с одинаковой структурой. Используйте ключевое слово new для создания экземпляров:
function Person(name, age) {
this.name = name;
this.age = age;
this.greet = function() {
return "Hello, my name is " + this.name;
};
}
const john = new Person("John", 30);
console.log(john.name); // Выводит: John
console.log(john.greet()); // Выводит: Hello, my name is JohnПопробуйте сами
// TODO: Создайте функцию-конструктор с именем Book, которая принимает три аргумента (title, author, pages)
// TODO: Установите их как свойства созданного объекта
// TODO: Добавьте метод getSummary, который возвращает строку с информацией о книге.
// Например: Harry Potter was written by Rowling and has 500 pages
// Не изменяйте код ниже
const inputTitle = inp[0]; // Первая строка: название книги
const inputAuthor = inp[1]; // Вторая строка: автор
const inputPages = parseInt(inp[2]);// Третья строка: количество страниц
const book = new Book(inputTitle, inputAuthor, inputPages);
console.log(book.getSummary());В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Объектно-ориентированное программирование
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Статические методы и свойства
Уровень класса против уровня экземпляраСтатические свойстваСтатические вспомогательные методыЗадание на закрепление