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é.