Heim  >  Artikel  >  Web-Frontend  >  Ausführliche Erläuterung der Schritte zum Implementieren der JS-Methodenüberladung mithilfe der Cache-Aufrufkette

Ausführliche Erläuterung der Schritte zum Implementieren der JS-Methodenüberladung mithilfe der Cache-Aufrufkette

php中世界最好的语言
php中世界最好的语言Original
2018-06-01 14:18:291081Durchsuche

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.

1. Was ist Methodenüberladung?

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? ? ?

2. Wie implementiert man js?

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;
    }
  }
}

3. Optimierung

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 addMethodMethode 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn