Создание класса (старый стиль)

В предыдущих разделах мы создавали один объект. Однако часто нужно создать множество объектов, обладающих одинаковым набором свойств и методов, но имеющих разные значения свойств. В этом случае следует описать класс. Класс можно сравнить с чертежом, а объект — с изделием, произведенным по этому чертежу. Чертеж всегда один, а вот изделий может быть бесконечное множество. Причем каждое изделие уникально и не зависит от других изделий.

В языке JavaScript существуют два стиля описания класса: старый и новый. При старом стиле в качестве конструктора класса выступает обычная функция. В новом стиле класс описывается с помощью инструкции class.

Функция в качестве конструктора класса

Если после ключевого слова new указана функция, то она становится конструктором класса, которому можно передать начальные данные при инициализации (листинг 11.1). Внутри конструктора доступен указатель this на текущий контекст. Обратите внимание: так как стрелочные функции не имеют своего указателя this их нельзя использовать в качестве конструктора класса.

Листинг 11.1. Функция в качестве конструктора класса

function Car(m, y) { // Конструктор класса
   this.model = m;
   this.year = y;
   this.getModel = function() {
      return this.model;
   }
}
// Создание экземпляров
let car1 = new Car('ВАЗ-2109', 2007);
let car2 = new Car('LADA Granta', 2014);
// Вывод значений
console.log( car1.year );       // 2007
console.log( car1.getModel() ); // ВАЗ-2109
console.log( car2.year );       // 2014
console.log( car2.getModel() ); // LADA Granta
// Изменение значения не влияет на второй объект
car1.year = 2008;
console.log( car1 );
// Car { model: 'ВАЗ-2109', year: 2008, 
// getModel: [Function] }
console.log( car2 );
// Car { model: 'LADA Granta', year: 2014, 
// getModel: [Function] }

С помощью конструктора класса можно создать множество объектов (экземпляров класса). При этом для каждого объекта создается свой набор локальных переменных.

Для использования методов и свойств класса необходимо создать экземпляр класса (объект). Для этого используется оператор new, после него указывается имя класса, к которому будет относиться данный экземпляр. После имени класса, в круглых скобках, можно передавать некоторые параметры, задавая таким образом начальные значения свойствам класса:

<Экземпляр класса> = new <Имя класса>([<Параметры>])

Пример:

let x = new Number(10);
console.log(typeof x);       // object

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

Помощь сайту

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

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