1. Was sind Argumente
Argumente sind ein integriertes Objekt in JavaScript. Alle wichtigen JS -Funktionsbibliotheken verwenden Argumenteobjekte. Daher ist das Agrumenteobjekt für JavaScript -Programmierer erforderlich.
Alle Funktionen haben ihr eigenes Argumenteobjekt, das die Parameter enthält, die von der Funktion aufgerufen werden sollen. Es ist kein Array, wenn Argumente Typen verwendet werden, ist die Rückgabe "Objekt". Obwohl wir Argumente aufrufen können, indem wir Daten aufrufen. Zum Beispiel Länge und Indexmethode. Die Push- und Pop -Objekte von Arrays sind jedoch nicht anwendbar.
2. Erstellen Sie eine flexible Funktion
Es scheint, dass das Argumentobjekt sehr begrenzt ist, aber tatsächlich ein sehr nützliches Objekt. Sie können das Argumentobjekt verwenden, damit die Funktion eine unbestimmte Anzahl von Parametern aufruft. In Dean Edwards 'Base2 -Bibliothek gibt es eine formatierte Funktion, die diese Flexibilität demonstriert.
Kopieren Sie den Code wie folgt: Funktionsformat (String) {
var args = Argumente;
var muster = new regexp ("%([1-" + argumente.length + "])", "g");
return String (String) .Replace (Muster, Funktion (Übereinstimmung, Index) {
Rückgabe args [index];
});
};
Wir bieten eine Vorlagenzeichenfolge, in der Sie mit "%1" zu "%9" einen Platzhalter zum Renditewert hinzufügen können. Geben Sie dann neun weitere Parameter ein, um einzufügen.
Die Codekopie lautet wie folgt: Format ("und der %1 möchte wissen, wessen %2 Sie %3", "Papiere", "Shirt", "Wear");
Der obige Code kehrt zurück: und die Papiere möchten wissen, wessen Hemd Sie tragen.
Es gibt etwas, auf das wir aufpassen müssen. Mit JavaScript können wir eine beliebige Anzahl von Parametern in eine Funktion übergeben, unabhängig davon, wie wir diese Funktion definieren. Argumente Objekte sind für diese zulässig.
3.. Konvertieren Sie Argumenteobjekte in ein echtes Array
Obwohl das Argumenteobjekt kein echtes JavaScript -Array ist, können wir es dennoch leicht in Standarddaten umwandeln und dann Array -Operationen ausführen.
Die Codekopie lautet wie folgt: var args = array.prototype.slice.call (Argumente);
Jetzt enthält diese Variablen args ein Standard -JavaScript -Array -Objekt, das alle Parameter der Funktion enthält.
4. Erstellen Sie Funktionen durch voreingestellte Argumente Objekte
Das Argumenteobjekt ermöglicht es uns, alle Arten von JavaScript -Methoden auszuführen. Hier ist eine Definition der Makefunc -Funktion. Mit dieser Funktion können wir eine Funktionsreferenz und alle Parameter dieser Funktion bereitstellen. Es wird eine anonyme Funktion zurückgegeben, um die von Ihnen angegebene Funktion aufzurufen, und auch die Parameter mit dem anonymen Funktionsaufruf bereitgestellt.
Kopieren Sie den Code wie folgt: Funktion Makefunc () {
var args = array.prototype.slice.call (Argumente);
var func = args.shift ();
return function () {
return func.apply (null, args.concat (array.prototype.slice.call (argumente)));
};
}
Das erste Argumentobjekt liefert Makefunc einen Verweis auf die Funktion, die Sie aufrufen möchten. Er entfernte es aus dem Argumente Array. Anschließend gibt Makefunc eine anonyme Funktion zurück, um die angegebene Methode auszuführen.
Das Argument der ersten Anwendung weist auf den Umfang des Funktionsaufrufs hin, auf den hauptsächlich die wichtigsten Teile der Funktion hingewiesen haben. Lassen Sie uns dies zuerst als Null halten. Das zweite Argument ist ein Array, das für diese Funktion in ein Argumentobjekt umgewandelt wird. Makefunc verkettet die ursprünglichen Array -Werte in das Argumenteobjekt und das Array der aufgerufenen Funktionen.
Sie müssen eine Vorlage ausgeben, die immer die gleiche Position ist, so dass Sie die Formatfunktion nicht jedes Mal aufrufen, wenn Sie sich auf die Vorlage beziehen. Sie können die allgemeine Funktion von Makefunc verwenden, um Funktionen zurückzugeben, die das Format aufrufen und die Vorlage automatisch ergänzen können.
Die Codekopie lautet wie folgt: var majortom = Makefunc (Format, "Dies ist Haupttom für die Bodenkontrolle. Ich bin %1.");
Sie können die Majortom -Funktion so aufrufen:
Die Codekopie lautet wie folgt: Majortom ("durch die Tür treten");
Majortom ("auf äußerst besondere Weise schweben");
Jedes Mal, wenn Sie Majortom anrufen, wird die Formatfunktion und das erste Argument gleichzeitig und die bereits geschriebene Vorlage aufgerufen. Dann wird es zurückkehren
Kopieren Sie den Code wie folgt: "Dies ist Major Tom zur Bodenkontrolle. Ich trete durch die Tür."
"Dies ist wichtiger Tom zu Bodenkontrolle.
5. Erstellen Sie eine Funktion, die sich selbst bezieht
Sie mögen das für cool halten, aber es gibt mehr Überraschungen für Argumente. Er hat andere nützliche Funktionen: die Callee -Methode. Argumente.Callee enthält einen Verweis auf eine Funktion, um ein Argumentobjekt zu erstellen. Wie benutzt man es?
Die Argumente.Callee -Methode ermöglicht eine anonyme Funktion, sehr bequem auf sich selbst zu verweisen.
Wiederholung ist eine Funktion, die eine Funktionsreferenz und zwei Zahlen trägt. Die erste Zahl ist, wie oft die Funktion aufgerufen wird, und die zweite Zahl ist das Intervall zwischen jedem Aufruf in Millisekunden.
Die Codekopie lautet wie folgt: Funktion wiederholen (fn, Zeiten, Verzögerung) {
return function () {
if (Times> 0) {
fn.apply (null, argumente);
var args = array.prototype.slice.call (Argumente);
var self = argumente.callee;
setTimeout (function () {self.apply (null, args)}, delay);
}
};
}
Die Wiederholungsfunktion verwendet die Argumente. Auf diese Weise kann die anonyme Funktion erneut aufgerufen werden.
Ich habe eine super kurze Funktion, die eine Zeichenfolge hostet und eine Alarmmethode ausführt.
Kopieren Sie den Code wie folgt: Funktion Comms (s) {
Warnungen;
}
Ich möchte jedoch eine spezielle Version erstellen, über die ich diese Aktion jedes Zeitintervall von 2 Sekunden dreimal wiederholen kann. Dann können wir
Die Codekopie lautet wie folgt: var therwrong = repeat (comms, 3, 2000);
Etwas. ("Kannst du mich hören, Major Tom?");
Das Ergebnis des Aufrufens der Funktion "Somethwrong" besteht darin, diese Aktion dreimal zu wiederholen, wobei jedes Alarmintervall von 2 Sekunden.
Obwohl Argumente nicht häufig verwendet werden und etwas seltsam sind, sind sie voller Überraschungen und sind es wert, zu lernen.