Heim >Web-Frontend >js-Tutorial >Eine kurze Analyse des Längenattributs einer Funktion in JavaScript_Grundkenntnisse

Eine kurze Analyse des Längenattributs einer Funktion in JavaScript_Grundkenntnisse

WBOY
WBOYOriginal
2016-05-16 16:46:451118Durchsuche

[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:

Code kopieren Der Code lautet wie folgt:

Funktionstest(a,b,c) {}
test.length // 3

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.

Code kopieren Der Code lautet wie folgt:

function test() { console.log( Argumente); }
test.length // 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.

Code kopieren Der Code lautet wie folgt:

function test() { console.log( arguments.length );}
test(1,2,3); // Ausgabe 3
test(1,2,3,4); // Ausgabe 4

Das Längenattribut einer Funktion kann also nur die Anzahl ihrer formalen Parameter erhalten, nicht jedoch die Anzahl der tatsächlichen Parameter.

Stellungnahme:
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