Hallo,
var Chicken = Y.extend(
function (name) {
Chicken.superclass.constructor.call(this, name);
this.run();
},
Bird,
{
this.name = 'test',
run: function () {
this.sing();
},
sing : function () {
alert("The chicken " + this.name + " says:");
Chicken.superclass.sing.call(this, name);
}
}
);
>
> Wer mir hier auf Anhieb sagen kann was hier was zu bedeuten hat, verdient meinen Respekt. Aber der kann mir sicherlich auch erklären warum die Argumentreihenfolge gerade Konstruktor, Elternkonstruktor und dann Members ist.
Naja, ohne Lesen der Doku gehts nicht. Auch nicht bei PHPs Zend-Framework (komplett OOP). Irgendwie scheinen sich die Erklärungen dazu und Argumente alle auch hier zu finden: <http://www.yuiblog.com/blog/2010/01/06/inheritance-patterns-in-yui-3/>.
YUI bietet ein pseudoklassisches Inheritance-Pattern mit Y.extend(ChildClass, ParentClass). Einfacher gehts doch nicht, oder? Gleichzeitig wird aber auch in dem Artikel auf die prototypische Vererbung eingegangen, wie molily das ja natürlich auch tut, denn da gehts ja auch um YUI.
Mir scheint das Argument "das ist mir zu kompliziert, wir machen das so wie wirs können, das andere ist was für hyperintelligente Freaks, wir müssen das für die Normalos anpassen" nicht stimmig. Crockford beschreibt ja selbst, dass er lange mit Javascript gehadert hat, bis ihm aufgegangen ist, wie man damit umgehen sollte. Im Kern geht es wohl auch auf einer abstrakteren Eben in diesem Artikel darum: <http://javascript.crockford.com/little.html>.
Gruß
jobo