Wenn wir uns den neuesten jQuery-Quelltext ansehen unter http://code.jquery.com/jquery-latest.js sehen wir das Folgende:
var jQuery = function( selector, context ) {
// The jQuery object is actually just the init constructor 'enhanced'
return new jQuery.fn.init( selector, context );
}
Mein Verständnis der neuen Schlüsselwort in Javascript ist im Wesentlichen JavaScript übergibt die Funktion ein leeres Objekt {}
und die Funktion setzt Dinge darauf über this.blah
.
Auch nach meinem Verständnis new
unterscheidet sich von .call
/ .apply
usw., da der Prototyp des Rückgabeobjekts ebenfalls auf den der Funktion eingestellt ist. Der Rückgabewert sollte also einen Prototyp haben, der der gleiche ist wie jQuery.prototype.init.prototype
(oder jQuery.fn.init.prototype
). Soweit ich sehe, ist der Prototyp jedoch auf jQuery.prototype
also alle Befehle, die für die Arbeit am Set zur Verfügung stehen.
Warum ist das so? Was fehlt mir in meinem Verständnis?