JavaScriptové perličky VIII.
Občas by v JavaScriptu byla zapotřebí dědičnost, tj. aby nějaká třída měl už "od narození" definované vlastnosti své nadtřídy. Jak se to v dělá? Trochu neobvykle, ale zato jednoduše – pomocí prototypů:
function MaterskaTrida() {} // konstruktor
MaterskaTrida.prototype.x = 5;
MaterskaTrida.prototype.y = 10;
function OdvozenaTrida() {} // konstruktor
OdvozenaTrida.prototype = MaterskaTrida.clone(); // metoda clone viz předchozí perličky
MaterskaTrida.prototype.y = 15;
OdvozenaTrida.prototype.z = 20;
m = new MaterskaTrida();
document.write(m.x); // 5
document.write(m.y); // 10
document.write(m.z); // undefined
o = new OdvozenaTrida();
document.write(o.x); // 5
document.write(o.y); // 15
document.write(o.z); // 20
Jak je vidět, při definici prototypu odvozené třídy vezmeme za základ prototyp třídy mateřské a přidáme vlastnosti, které v něm chceme mít navíc. Jak prosté.