Dieses Mal erkläre ich Ihnen ausführlich die Schritte zur Verwendung der Cache-Aufrufkette zur Implementierung der JS--Methodenüberladung und welche Vorsichtsmaßnahmen für die Verwendung der Cache-Aufrufkette gelten Um die Überladung von JS-Methoden zu implementieren, werfen wir einen Blick auf praktische Fälle.
Methodenüberladung bezieht sich auf die Definition mehrerer Methoden mit demselben Namen in einer Klasse, die jedoch erfordern, dass jede Methode unterschiedliche Parametertypen oder Parameternummern hat.
Kurz gesagt: Methodenüberladung bedeutet wiederholte Methodennamen und unterschiedliche Ladeparameter.
Für Details gehen Sie bitte nach links: Methodenüberladung/Baidu-Enzyklopädie
Wie implementiert js das? ? ?
Erstens verfügt Javascript nicht über das Konzept überladener Funktionen/Methoden, aber js stellt einen Methodenparameter namens Argumente bereit. Sie können die Länge des Methodenparameters über das Längenattribut ermitteln o~ Was wir heute implementiert haben, ist übrigens nur eine Überladung nach der Parameterlänge, nicht nach der Parametertyp~~·Länge.
Was das Herunterladen angeht, ist die Methode, sobald die Parameterlänge verfügbar ist, eine häufigere Methode Schreibmethode wechseln erscheint:
var seven={ dosomething:function(){ switch(arguments.length){ case 0: console.log(arguments.length); //dosomething break; case 1: console.log(arguments.length); //dosomething break; case 2: //dosomething console.log(arguments.length); break; } } }
Wow~ Wenn es 10 Methoden gibt, werden 10 Zweige benötigt~ und es ist sehr schwierig, sie zu pflegen~, weil jede Der Methodenkörper befindet sich unter einem Fall, oder schlagen Sie ihn separat vor und schreiben Sie ihn als Funktion ~
Aber diese sind schlecht ~ nicht einfach zu warten und die Qualität ist nicht hoch genug ~ Wie sollten wir also die Verarbeitung derselben elegant implementieren? Methodenname mit unterschiedlichen Parametern?
Hier kommt die Apply-Methode zum Einsatz
Schreiben wir eine addMethod
Methode für sieben
var seven = { addMethod: function (fname, func) { var old = this[fname]; this[fname] = function () { if (arguments.length == func.length) { return func.apply(this,arguments); } if (typeof old == 'function') { return old.apply(this, arguments); } } } };
Die modifizierte Sieben ist wie oben und dann der zuvor geschriebene Schalter Sie können es so machen:
seven.addMethod('dosomething', function (x) { console.log(arguments.length); //dosomething }); seven.addMethod('dosomething', function (x,y) { console.log(arguments.length); //dosomething }); seven.addMethod('dosomething', function (x,y,z) { console.log(arguments.length); //dosomething });
Wenn wir eine Methode hinzufügen möchten, müssen wir nur die Methode addMethod aufrufen. Finden Sie das nicht einfacher und klarer?
Das Prinzip dieses Codes ist eigentlich sehr einfach. Er besteht darin, die alte Methode zwischenzuspeichern und dann Kettenaufrufe entsprechend der Parameterlänge anzuwenden, bis eine Methode mit derselben Länge wie der aktuelle Parameter gefunden und dann aufgerufen wird .
func
und old
werden diejenigen, die neu im Spiel sind, wahrscheinlich nicht verwirren. Dies ist jedoch nicht der Fall Gespeichert, es ist ein Verweis auf die vorherige Methode und es ist jedes Mal brandneu, und die alte alte behält den Verweis. Schließung~.
Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!
Empfohlene Lektüre:
So verwenden Sie Vux in einem Vue-Projekt
So verwenden Sie Slots in Vue, um übergeordnete Elemente zu verteilen Komponenten
Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung der Schritte zum Implementieren der JS-Methodenüberladung mithilfe der Cache-Aufrufkette. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!