Ich versuche, die Prinzipien der Funktion jQuery-Stil-Funktion in meinem Kopf gerade zu verketten. Damit meine ich:Wie funktioniert die grundlegende Verknüpfung von Objekten/Funktionen in Javascript?
var e = f1('test').f2().f3();
Ich habe ein Beispiel zu arbeiten, während ein anderes nicht funktioniert. Ich werde diese unten posten. Ich möchte immer die grundlegenden Prinzipien lernen, wie etwas funktioniert, damit ich darauf aufbauen kann. Bis jetzt hatte ich nur ein flüchtiges und leises Verständnis davon, wie Verkettung funktioniert, und ich stoße auf Fehler, die ich nicht intelligent lösen kann.
Was ich weiß:
- Funktionen haben sich zurückzukehren, auch bekannt als "zurückkommen";
- Verkettungsfunktionen müssen sich in einer übergeordneten Funktion befinden, aka in jQuery, .css() ist eine Untermethode von jQuery(), daher jQuery(). Css();
- Die Elternfunktion sollte sich selbst oder eine neue Instanz von sich selbst zurückgeben.
Dieses Beispiel arbeitete:
var one = function(num){
this.oldnum = num;
this.add = function(){
this.oldnum++;
return this;
}
if(this instanceof one){
return this.one;
}else{
return new one(num);
}
}
var test = one(1).add().add();
Aber dieses nicht:
var gmap = function(){
this.add = function(){
alert('add');
return this;
}
if(this instanceof gmap) {
return this.gmap;
} else{
return new gmap();
}
}
var test = gmap.add();
Die Funktionen geben nicht selbst zurück, sie geben das Objekt zurück, das die verketteten Methoden unterstützt. Im jQuery-Fall wird der Knoten bearbeitet. – drudru
Lassen Sie jede Funktion mit einem 'return this;' enden. –
@MarcB - Ich weiß, aber wie? –