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() викликається автоматично при створенні об'єкту і не може бути викликаний вручну після ініціалізації.

автор: Bond

Порада

Уникайте виконання важких операцій або асинхронного коду в конструкторі. Конструктор повинен бути простим та виконуватися швидко. Якщо вам потрібно виконувати складні операції, розгляньте можливість перенесення їх до іншого методу.

автор: Bond
Нотатка

Для початківців важливо зрозуміти, що конструктор — це найкраще місце для ініціалізації властивостей об'єкта. Коли ви створюєте новий екземпляр класу, всі властивості, вказані в constructor, будуть присутні в об'єкті.

class Book {
   constructor(title) {
       this.title = title;
   }
}
автор: Bond
Нотатка

При роботі з наслідуванням завжди пам'ятайте викликати конструктор базового класу за допомогою super перед встановленням будь-яких властивостей у підкласі. Це гарантує правильну ініціалізацію всіх базових властивостей.

class Novel extends Book {
   constructor(title, author) {
       super(title);
       this.author = author;
   }
}
автор: Bond

Синтаксис

constructor() { /* … */ }
constructor(argument0) { /* … */ }
constructor(argument0, argument1) { /* … */ }
constructor(argument0, argument1, /* …, */ argumentN) { /* … */ }

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE
49 45 9 36 13
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
49 49 45 36
Підтримка: серверні переглядачі
Переглядач Node.js Deno
6.0.0 1.0

Приклади

+ запропонувати свій приклад у пісочниці

У цьому прикладі ми створили клас 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."
автор: Bond

У цьому прикладі ми створили базовий клас 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()}`); // Виводить: "Барбос говорить: Гав!"
автор: Bond

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід