JS метод Class.constructor()
Загальний опис
Метод Class.constructor()
є фундаментальною частиною об'єктно-орієнтованого програмування в JavaScript. Він служить для ініціалізації створених об'єктів. Коли новий об'єкт ініціалізується за допомогою ключового слова new
, конструктор класу викликається автоматично.
Зазвичай, конструктор приймає певні параметри, які визначають стан або конфігурацію цього об'єкту.
class Car {
constructor(brand) {
this.brand = brand;
}
}
const myCar = new Car("Toyota");
console.log(myCar.brand); // Виведе "Toyota"
Конструктори відіграють ключову роль у створенні екземплярів класу з унікальними властивостями та методами. Їх часто використовують для ініціалізації базового стану об'єкта або для встановлення початкових значень.
Встановлення властивостей: Однією з основних особливостей Class.constructor()
є можливість встановлення властивостей об'єкту.
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
}
Виклик базового конструктора: У випадку наслідування можна використовувати super
для виклику конструктора базового класу.
class Employee extends Person {
constructor(name, age, position) {
super(name, age);
this.position = position;
}
}
На відміну від інших методів, Class.constructor()
викликається автоматично при створенні об'єкту і не може бути викликаний вручну після ініціалізації.
Нотатка: | Для початківців важливо зрозуміти, що конструктор — це найкраще місце для ініціалізації властивостей об'єкта. Коли ви створюєте новий екземпляр класу, всі властивості, вказані в
|
Нотатка: | При роботі з наслідуванням завжди пам'ятайте викликати конструктор базового класу за допомогою
|
Порада: | Уникайте виконання важких операцій або асинхронного коду в конструкторі. Конструктор повинен бути простим та виконуватися швидко. Якщо вам потрібно виконувати складні операції, розгляньте можливість перенесення їх до іншого методу. |
Синтаксис
constructor() { /* … */ }
constructor(argument0) { /* … */ }
constructor(argument0, argument1) { /* … */ }
constructor(argument0, argument1, /* …, */ argumentN) { /* … */ }
Параметри
Return
Переглядачі
Переглядач | |||||
---|---|---|---|---|---|
49 |
45 |
9 |
36 |
13 |
Переглядач | ||||
---|---|---|---|---|
49 |
49 |
45 |
36 |
Переглядач | ||
---|---|---|
6.0.0 |
1.0 |
Приклади
У цьому прикладі ми створили базовий клас Animal
, який має конструктор для ініціалізації імені тварини. Ми розширили цей клас, створивши підклас Dog
, який додає додаткову властивість breed
. У підкласі ми також перевизначили метод sound()
, щоб він повертав звук, характерний для собак.
Важливо зауважити, що ми використали метод super()
для виклику конструктора базового класу в конструкторі підкласу.
class Animal {
constructor(name) {
this.name = name; // Властивість name зберігає ім'я тварини
}
sound() {
return "Ця тварина видає якийсь звук!";
}
}
class Dog extends Animal {
constructor(name, breed) {
super(name); // Викликаємо конструктор базового класу
this.breed = breed; // Додаємо властивість breed для породи собаки
}
sound() {
return "Гав!";
}
}
const myDog = new Dog("Барбос", "Бульдог");
console.log(`${myDog.name} говорить: ${myDog.sound()}`); // Виводить: "Барбос говорить: Гав!"
У цьому прикладі ми створили клас Car
з конструктором constructor()
, який приймає два параметри: brand
та model
. При створенні нового екземпляра класу (за допомогою ключового слова new
) ми передаємо цим параметрам значення. Метод getCarInfo()
повертає рядок із інформацією про автомобіль.
class Car {
// Конструктор класу Car приймає назву марки та модель автомобіля
constructor(brand, model) {
this.brand = brand; // Властивість brand зберігає марку автомобіля
this.model = model; // Властивість model зберігає модель автомобіля
}
// Метод для отримання повної інформації про автомобіль
getCarInfo() {
return `Цей автомобіль - ${this.brand} моделі ${this.model}.`;
}
}
// Створення нового екземпляра класу
const myCar = new Car("Toyota", "Camry");
console.log(myCar.getCarInfo()); // Виводить: "Цей автомобіль - Toyota моделі Camry."