JavaScript·100 питань

QUESTION: Як працює успадкування класів?

Відповідь

Успадкування класів у сучасному JavaScript побудоване на базі синтаксичного цукру над прототипним успадкуванням і реалізується за допомогою ключового слова extends. Щоб дочірній клас міг успішно успадковуватися від батьківського, використовується конструкція виду class Child extends Parent {}. Водночас створення екземпляра дочірнього класу вимагає суворого дотримання правил роботи з конструктором. Якщо в класі-нащадку визначається власний конструктор, виклик super() у ньому є обов'язковим і повинен стояти на найпершому рядку до звернення до ключового слова this. Це необхідно для того, щоб коректно ініціалізувати контекст батьківського класу. Якщо пропустити виклик super(), інтерпретатор видасть помилку.

Окрім ініціалізації, оператор super активно застосовується для виклику батьківських методів із дочірнього класу. Наприклад, якщо в дочірньому класі ви хочете розширити функціональність методу, який уже існує в батька, ви можете написати super.method() усередині вашого перевизначеного методу, щоб спочатку виконати логіку батька, а потім додати власну. Перевизначення методів дає змогу гнучко налаштовувати поведінку об'єктів під конкретні вимоги завдання.

Для перевірки належності об'єкта до певного класу або функції-конструктора використовується оператор instanceof. Він дає змогу безпечно визначити, чи був створений об'єкт на основі конкретного класу, що особливо корисно під час роботи з ієрархіями класів і поліморфізмом.

Чи корисна ця відповідь?

Інші питання цієї теми

Пов’язані питання з інших тем