Als ich nach Möglichkeiten suchte, eine Javascript-API zu entwerfen, entdeckte ich, dass Methodenverkettung sehr leistungsfähig und interessant zu sein scheint, und das haben wir in der Vergangenheit oft gesehen. .
Javascript-Methodenverkettung
Auf Wikipedia gibt es diese Erklärung:
Methodenverkettung, auch bekannt als benannte Parameter-Idiom, ist eine gängige Syntax zum Aufrufen mehrerer Methodenaufrufe in objektorientierten Programmiersprachen. Jede Methode gibt ein Objekt zurück, sodass die Aufrufe in einer einzigen Anweisung verkettet werden können. Verkettung ist syntaktischer Zucker, der eliminiert Der Bedarf an Zwischenvariablen wird auch als Zugunglück bezeichnet, da die Anzahl der Methoden, die nacheinander in derselben Zeile stehen, zunimmt, wenn mehr Methoden miteinander verkettet werden, obwohl dazwischen häufig Zeilenumbrüche eingefügt werden Methoden.
Nehmen Sie ein Übersetzungstool und übersetzen Sie es:
Die Methodenverkettung, auch benannte Parametermethode genannt, ist eine gängige Syntax zum Aufrufen mehrerer Methoden in objektorientierten Programmiersprachen. Jede Methode gibt ein Objekt zurück, sodass Aufrufe in einer einzigen Deklaration miteinander verbunden werden können. Links sind syntaktischer Zucker, sodass keine Zwischenvariablen erforderlich sind. Die Methodenverkettung wird auch als Zugunglück bezeichnet, da die Anzahl der Methoden, die nacheinander in derselben Zeile stehen, zunimmt, wenn mehr als eine Methode gesperrt ist, selbst wenn zwischen den Methoden normalerweise Zeilenumbrüche eingefügt werden.
Methodenverkettung mit
Laut visueller Betrachtung ist jQuery wahrscheinlich die am häufigsten verwendete Methodenkette.
// Verkettung
$("#person").slideDown('slow')
.addClass('grouped')
.css('margin-left', '11px');
Wir können dies mit einer solchen Verwendung aufrufen. jQuery ist stark auf Links angewiesen. Dadurch ist es einfach, mehrere Methoden desselben Selektors aufzurufen. Dadurch wird auch der Code sauberer und verhindert, dass dieselbe Auswahl mehrmals ausgeführt wird (was die Leistung verbessert). Wenn keine Methodenkette vorhanden ist, sieht es wie folgt aus
var p = $('#person');
p.slideDown('slow');
p.addClass('grouped');
p.css('margin-left', '11px');
Es sieht dem Builder im Entwurfsmuster sehr ähnlich. Der Unterschied besteht darin, dass p hier eine Methode und keine Klasse ist.
Beispiel für eine Javascript-Methodenkette
Als wir zuvor über Javascript-Funktionen höherer Ordnung gesprochen haben, haben wir über print('Hello')('World') gesprochen, und das Ergebnis dieser Verwendung könnte so aussehen.
Funktion f(i){
Rückgabefunktion(e){
i =e;
Rückgabefunktion(e){
i =e;
Rückgabefunktion(e){
alarm(i e);
};
};
};
};
f(1)(2)(3)(4); //10
Dies ist ein Beispiel aus dem Internet, aber es war auch das letzte Mal, dass ich einen Kettenruf geschrieben habe. Sieht extrem schwach aus.
var func = (function() {
Zurück{
hinzufügen: Funktion () {
console.log('1');
zurück{
Ergebnis: Funktion () {
console.log('2');
}
}
}
}
})();
func.add().result();
Tatsächlich sollte es in jeder Funktion ein return this geben, also gibt es:
Func = (function() {
This.add = function(){
console.log('1');
gib dies zurück;
};
This.result = function(){
console.log('2');
gib dies zurück;
};
Geben Sie dies zurück;
});
var func = new Func();
func.add().result();
Natürlich können wir auch die letzten beiden Sätze
ersetzen
var func = new Func();
func.add().result();
Werde
new Func().add().result();
Andere
Zum Schluss noch ein kleiner Vergleich als verwirrender Ort:
Methodenverkettung vs. Prototypenverkettung
Die Prototypenkette und die Methodenkette sind in einigen Aspekten ähnlich, aber der Unterschied kann
sein
1. Die Prototypenkette erfordert den Einsatz von Prototypen
2. Die Methodenkette verwendet die Methode