Heim > Artikel > Web-Frontend > Detaillierte Erläuterung der in JavaScript integrierten Objektargumente
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]; }); };
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”);
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);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))); }; }
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.”);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”);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.
“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.”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); } }; }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.