Menu
Coddy logo textTech

Функции-конструкторы

Часть раздела Объектно-ориентированное программирование путешествия по 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
challenge icon

Задание

  1. Создайте функцию-конструктор с именем 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());
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Объектно-ориентированное программирование