Moștenirea este un concept central în programarea orientată pe obiect, care îți permite să extinzi clasele existente și să utilizezi proprietățile și metodele acestora. JavaScript a introdus odată cu ES6 o sintaxă mai recentă și mai robustă pentru moștenire, care este mult mai ușor de gestionat decât metodele originale bazate pe prototipuri. În acest ghid, îți voi arăta cum să aplici moștenirea în JavaScript folosind cuvântul cheie extends și îți voi explica pas cu pas cum să apelezi corect constructorul clasei de bază cu super.
Cele mai importante concluzii
- Moștenirea în JavaScript se realizează prin cuvântul cheie extends.
- Constructorul clasei de bază trebuie apelat cu super.
- Variabilele de instanță pot fi referite prin cuvântul cheie this în clasa derivată.
Ghid pas cu pas
Crearea clasei de bază
Pentru a începe cu moștenirea, mai întâi creăm o clasă de bază numită Shape. În această clasă definim constructorul și câteva metode.
Aici definești o clasă Shape care are un constructor. Poți defini variabile și funcții în acest constructor, la care pot avea acces alte clase.

Explorarea subclasei
După crearea clasei de bază, poți acum să creezi o subclasă care moștenește de la Shape. În acest exemplu, numim noua clasă ConcreteShape.
În această subclasă, folosim cuvântul cheie extends pentru a indica că ConcreteShape moștenește de la Shape. Constructorul subclasei apelează constructorul clasei de bază Shape cu super(), ceea ce este necesar pentru a implementa corect moștenirea.
Instanțierea subclasei
Acum, că am creat subclasa, este timpul să generăm o instanță a acestei clase.
Aici creezi un nou obiect myShape al clasei ConcreteShape și transmiți o descriere constructorului. Apoi, apelezi metoda print, care emite descrierea.
Adăugarea de noi proprietăți
Poti adăuga noi proprietăți subclasei tale sau chiar metode care sunt specifice acestei subclase.
Aici ai extins clasa ConcreteShape adăugând parametri suplimentari constructorului.
Utilizarea moștenirii
Cu cuvântul cheie super poți apela metoda describe a clasei de bază pentru a combina proprietățile clasei de bază și ale subclasei.
Rezumare – Moștenire în JavaScript: De la ES6 la ES13
În acest tutorial ai învățat cum funcționează moștenirea în JavaScript, în special cu noua sintaxă class. Ai văzut cum să definești clase, cum să moștenești de la o clasă de bază și cum să apeși corect constructorul. Aceste mecanisme îți fac mai ușor să-ți menții baza de cod curată și întreținută, reutilizând eficient funcționalitățile.
Întrebări frecvente
Care este diferența dintre super() și this?super() este folosit pentru a apela constructorul clasei de bază, în timp ce this accesează instanța clasei curente.
De ce utilizarea claselor ES6 este mai bună decât prototipurile?Clasele ES6 oferă o sintaxă mai clară și mai intuitivă, facilitând citirea și înțelegerea codului.
Pot avea mai multe clase de bază?Nu, JavaScript nu suportă moștenirea multiplă. O clasă poate moșteni doar de la o altă clasă.
Ce se întâmplă dacă nu apelezi super()?Dacă nu apelezi super(), vei primi o eroare, deoarece constructorul clasei de bază, care inițializează ceea ce este necesar pentru clasă, nu va fi executat.