Heim > Artikel > Web-Frontend > Eine kurze Analyse des Längenattributs einer Funktion in JavaScript_Grundkenntnisse
[1,2,3].length kann 3 bekommen, „123“.length kann auch 3 bekommen, das weiß jeder, der sich ein wenig mit js auskennt.
Aber was bekommen eval.length, RegExp.length, "".toString.length, 1..toString.length?
Wir erhalten jeweils 1, 2, 0 und 1. Was bedeuten diese Zahlen?
Das ist eine Frage, die sich viele Neulinge in der Gruppe gestellt haben. Tatsächlich bestimmt die Länge der Funktion die Anzahl der formalen Parameter.
Werfen wir einen kurzen Blick auf ein Beispiel:
Funktionstest(a,b,c,d) {}
test.length // 4
Ist es nicht ganz einfach, aber es gibt auch Sonderfälle: Wenn die Parameter über Argumente innerhalb der Funktion aufgerufen werden, ohne die Parameter tatsächlich zu definieren, erhält die Länge nur 0.
Diese Funktion kann zwar Parameter übergeben, und die Parameter werden auch intern aufgerufen, aber die Länge kann die Anzahl der übergebenen Parameter nicht kennen.
Die Anzahl der tatsächlichen Parameter kann nur über arguments.length ermittelt werden, wenn die Funktion ausgeführt wird.
Das Längenattribut einer Funktion kann also nur die Anzahl ihrer formalen Parameter erhalten, nicht jedoch die Anzahl der tatsächlichen Parameter.