Конструктор класса

Конструктор класса внутри инструкции class определяется с помощью метода со специальным названием constructor(). Пример создания класса приведен в листинге 11.6.

Листинг 11.6. Инструкция class

class Car {
   constructor(m, y) { // Конструктор класса
      // Свойства
      this.model = m;
      this._year = y;
   }
   // Обычный метод
   getModel() {
      return this.model;
   }
   // Setter
   set year(value) {
      this._year = value;
   }
   // Getter
   get year() {
      return this._year;
   }
}
// Создание экземпляра
let obj1 = new Car('ВАЗ-2109', 2007);
let obj2 = new Car('LADA Granta', 2014);
// Вывод значений
console.log( obj1._year );       // 2007
console.log( obj1.getModel() );  // ВАЗ-2109
console.log( obj2._year );       // 2014
console.log( obj2.getModel() );  // LADA Granta
// Изменение значения с помощью setter
obj1.year = 2009;
// Получение значения с помощью getter
console.log( obj1.year );        // 2009

Свойства класса описываются внутри конструктора. Перед их именем добавляется указатель this и оператор точка:

this.model = m;

Все методы, определенные внутри класса, добавляются в прототип:

console.log( Object.getOwnPropertyNames(obj1) );
// [ 'model', '_year' ]
console.log( Object.getOwnPropertyNames(
                Object.getPrototypeOf(obj1) ) );
// [ 'constructor', 'getModel', 'year' ]

Учебник по Node.js и JavaScript
Учебник по JavaScript (Node.js) в формате PDF

Помощь сайту

ЮMoney (Yandex-деньги): 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов