Prototype, Ajax, moofx: Notizen (so funktioniert’s)
Was passiert eigentlich in prototype.js (http://prototype.conio.net/) in den Zeilen:
var Class = {
create: function() {
return function() {
this.initialize.apply(this, arguments);
}
}
}
Und was passiert in dem Zusammenhang in moo.fx.js (http://moofx.mad4milk.net/) in: fx.Opacity = Class.create();?
Es passiert folgendes… Nach fx.Opacity = Class.create() ist fx.Opacity eine Funktion (eine Funktion kann in JavaScript als Objekt gesehen werden). Jedes Mal, wenn ein solches Objekt erstellt wird, wird diese Funktion daher automatisch ausgeführt. Die Funktion ist this.initialize.apply(this, arguments) und sorgt dafür, dass die initialize-Funktion des Objekts ausgeführt und somit das Objekt initialisiert wird (Konstruktor). Mehr Details (xml.com)
Und dann ist da noch die apply-Methode:
objekt.apply(objekt2, arguments) erwirkt, dass die Methoden, die objekt per this auf sich selbst ausführen würde, auf objekt2 ausgeführt werden. this wird also “verbogen”. Mehr Details (developper.mozilla.org)
Und das bedeutet die prototype-Eigenschaft:
Diese Eigenschaft besitzt jedes Objekt. objekt.prototype = new objekt2(val) erwirkt, dass objekt um die Eigenschaften von objekt2 erweitert wird (Vererbung). Mehr Details (devguru.com)
