Array.prototype.slice.call: Die Geheimnisse der Argumentmanipulation enthüllen
Die Array.prototype.slice.call-Methode ist eine leistungsstarke Methode Tool, mit dem wir Argumente in ein richtiges Array konvertieren können. Aber wie funktioniert es hinter den Kulissen?
Methodenaufruf und das Schlüsselwort „this“
Wenn wir eine Methode für ein Objekt aufrufen, wird das Objekt selbst zum Wert des Schlüsselworts this innerhalb der Methode. Zum Beispiel in der folgenden Zeile:
[1,2,3].slice()
Das Array [1,2,3] wird in der Slice-Methode zum Wert davon.
Argumente als „Array“. -Like Object"
Das arguments-Objekt, das die Funktionsargumente darstellt, verfügt über mehrere Array-ähnliche Eigenschaften:
Die Magie von Array.prototype.slice.call
Die Methode Array.prototype.slice.call ermöglicht es uns, diesen Wert einer Funktion manuell festzulegen. Indem wir dies auf das Arguments-Objekt setzen, täuschen wir die Slice-Methode im Wesentlichen vor, sie würde auf einem Array arbeiten.
Das liegt daran, dass die Slice-Methode davon ausgeht, dass es sich um ein Array handelt. Solange dies über eine numerische .length-Eigenschaft und einen Satz numerischer Indexeigenschaften verfügt, verarbeitet Slice es problemlos als Array.
Beispiel: Argumente in ein Array konvertieren
Betrachten Sie den folgenden Code:
var myArguments = (1, 2, 3, 4, 5); var myArray = Array.prototype.slice.call(myArguments); console.log(myArray);
Ausgabe:
[1, 2, 3, 4, 5]
In diesem Beispiel konvertiert die Slice-Methode das myArguments-Argumentenobjekt in ein richtiges Array, das dann im protokolliert wird Konsole.
Fazit
Indem wir die Rolle des Schlüsselworts this, arrayähnlicher Objekte und die Annahmen der Slice-Methode verstehen, können wir die Leistungsfähigkeit von Array.prototype nutzen .slice.call, um Argumente zu manipulieren und wiederverwendbaren Array-Verarbeitungscode zu erstellen.
Das obige ist der detaillierte Inhalt vonWie manipuliert Array.prototype.slice.call Argumente in ein Array?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!