Heim > Web-Frontend > js-Tutorial > Hauptteil

Detaillierte Erläuterung der in JavaScript integrierten Objektargumente

高洛峰
Freigeben: 2016-12-14 09:03:31
Original
1554 Leute haben es durchsucht

1. Was sind Argumente?
Argumente sind ein eingebautes Objekt in JavaScript. Es ist seltsam und wird oft übersehen, aber es ist tatsächlich sehr wichtig. Alle wichtigen JavaScript-Bibliotheken verwenden das Argumentobjekt. Daher muss das Objekt agruments JavaScript-Programmierern bekannt sein.
Alle Funktionen verfügen über ein eigenes Argumentobjekt, das die von der Funktion aufzurufenden Parameter enthält. Es handelt sich nicht um ein Array. Wenn Typargumente verwendet werden, wird „Objekt“ zurückgegeben. Obwohl wir Argumente mit der Methode zum Aufrufen von Daten aufrufen können. Zum Beispiel Längen- und Indexmethoden. Array-Push- und Pop-Objekte sind jedoch nicht anwendbar.
2. Erstellen Sie eine flexible Funktion
Es scheint, dass die Verwendung des Argumentobjekts sehr eingeschränkt ist, aber tatsächlich ist es ein sehr nützliches Objekt. Sie können den Aufruf einer Funktion mit einer variablen Anzahl von Argumenten ermöglichen, indem Sie das Argumentobjekt verwenden. In der base2-Bibliothek von Dean Edwards gibt es eine Formatierungsfunktion, die diese Flexibilität demonstriert.

function format(string) {   
  var args = arguments;   
  var pattern = new RegExp(“%([1-" + arguments.length + "])”, ”g”);   
  return String(string).replace(pattern, function(match, index) {   
    return args[index];   
  });  
};
Nach dem Login kopieren

Wir stellen eine Vorlagenzeichenfolge bereit. Sie können „%1“ bis „%9“ verwenden, um dem Rückgabewert einen Platzhalter hinzuzufügen. Anschließend werden neun weitere Parameter zum Einfügen bereitgestellt.

format(“And the %1 want to know whose %2 you %3″, ”papers”, ”shirt”, ”wear”);
Nach dem Login kopieren

Der obige Code gibt Folgendes zurück: „Und die Zeitungen wollen wissen, wessen Hemd du trägst.“ .
Eine Sache, auf die wir achten müssen, ist, dass wir bei der Definition der Funktion nur einen Parameter angeben , string. Mit Javascript können wir eine beliebige Anzahl von Parametern an eine Funktion übergeben, unabhängig davon, wie die Funktion definiert ist.
Obwohl arguments Das Objekt kein echtes JavaScript-Array ist , aber wir können es trotzdem einfach in Standarddaten umwandeln und dann Array-Operationen ausführen. Dann enthält die Variable args jetzt einen Standard, der alle Parameter des Javascript-Array-Objekts enthält . Erstellen Sie Funktionen über voreingestellte Argumentobjekte. Das Argumentobjekt ermöglicht es uns, alle Arten von Javascript-Methoden auszuführen Geben Sie eine anonyme Funktion zurück, um die von Ihnen angegebene Funktion aufzurufen, und stellen Sie auch die Parameter bereit, die mit dem anonymen Funktionsaufruf geliefert werden.

var args = Array.prototype.slice.call(arguments);
Nach dem Login kopieren
Das erste Argumentobjekt wird für makeFunc bereitgestellt Es wird aus dem Argumentarray entfernt, um die angegebene Methode auszuführen. Das erste angewendete Argument verweist auf den Schlüsselteil innerhalb der Funktion Dies als null. Das zweite Argument ist ein Array, das in ein Argumentobjekt für diese Funktion umgewandelt wird. MakeFunc verkettet den ursprünglichen Arraywert in das Argumentobjekt und stellt ihn der anonymen Funktion zur Verfügung Um eine Vorlage immer an derselben Position auszugeben, sodass Sie nicht jedes Mal die Formatfunktion aufrufen müssen, wenn Sie auf die Vorlage verweisen, können Sie die allgemeine Funktion von makeFunc verwenden, um Formatfunktionen aufzurufen und diese dann automatisch hinzuzufügen.



Sie können die Funktion „majorTom“ wie folgt aufrufen:

function makeFunc() {   
  var args = Array.prototype.slice.call(arguments);   
  var func = args.shift();   
  return function() {   
    return func.apply(null, args.concat(Array.prototype.slice.call(arguments)));   
  };   
}
Nach dem Login kopieren


Jedes Mal, wenn Sie „majorTom“ aufrufen, werden sowohl die Formatfunktion als auch das erste Argument aufgerufen Die Vorlage wurde geschrieben. Dann wird

var majorTom = makeFunc(format, ”This is Major Tom to ground control. I'm %1.”);
Nach dem Login kopieren
zurückgegeben. 5. Erstellen Sie eine Funktion, die sich selbst referenziert.

Sie finden das vielleicht cool, aber es gibt noch mehr Überraschungen in Argumenten: die Callee-Methode. Arguments.callee enthält einen Verweis auf eine Funktion zum Erstellen eines Argumentobjekts. Wie benutzt man es?

Mit der Arguments.callee-Methode kann eine anonyme Funktion bequem auf sich selbst verweisen.
majorTom(“stepping through the door”);   
majorTom(“floating in a most peculiar way”);
Nach dem Login kopieren
Repeat ist eine Funktion, die eine Funktionsreferenz und zwei Zahlen trägt. Die erste Zahl gibt an, wie oft die Funktion aufgerufen wird, und die zweite Zahl gibt die Zeit zwischen den einzelnen Aufrufen in Millisekunden an.


Die Repeat-Funktion verwendet die Methode arguments.callee, um eine Referenz aus der Variablen self zu erhalten, die auf die Funktion verweist, die die ursprüngliche Anweisung ausgeführt hat. Auf diese Weise kann sich die anonyme Funktion erneut aufrufen.
“This is Major Tom to ground control. I'm stepping through the door.”   
“This is Major Tom to ground control. I'm floating in a most peculiar way.”
Nach dem Login kopieren
Ich habe eine supereinfache Funktion, die eine Zeichenfolge trägt und die Alarmmethode ausführt.



Allerdings möchte ich eine spezielle Version erstellen, mit der ich diese Aktion dreimal wiederholen kann, jedes Mal im Abstand von 2 Sekunden. Dann können wir

function repeat(fn, times, delay) {   
  return function() {   
    if(times– > 0) {   
      fn.apply(null, arguments);   
      var args = Array.prototype.slice.call(arguments);   
      var self = arguments.callee;   
      setTimeout(function(){self.apply(null,args)}, delay);   
    }   
  };   
}
Nach dem Login kopieren
Das Ergebnis des Aufrufs der Funktion „etwas Wrong“ ist, dass diese Aktion dreimal wiederholt wird, mit einem Intervall von 2 Sekunden zwischen jeder Warnung.

Obwohl Argumente nicht oft verwendet werden und etwas seltsam sind, stecken sie voller Überraschungen und sind es wert, verstanden zu werden.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!