Maison >interface Web >js tutoriel >Une brève analyse de l'attribut length de la fonction dans les connaissances JavaScript_Basic

Une brève analyse de l'attribut length de la fonction dans les connaissances JavaScript_Basic

WBOY
WBOYoriginal
2016-05-16 16:46:451112parcourir

[1,2,3].length peut obtenir 3, "123".length peut aussi obtenir 3, tous ceux qui connaissent un peu js le savent.

Mais qu'obtiendront eval.length, RegExp.length, "".toString.length, 1..toString.length ?

Nous obtenons respectivement 1, 2, 0 et 1. Que représentent ces nombres ?

C'est une question que de nombreux nouveaux venus dans le groupe se posent. En fait, la longueur de la fonction obtient le nombre de paramètres formels.
Jetons un coup d'œil rapide à un exemple :

Copier le code Le code est le suivant :

test de fonction (a,b,c) {}
test.longueur // 3

test de fonction(a,b,c,d) {}
test.length // 4

N'est-ce pas très simple, mais il existe aussi des cas particuliers. Si les paramètres sont appelés via des arguments à l'intérieur de la fonction sans réellement définir les paramètres, la longueur n'obtiendra que 0.

Copier le code Le code est le suivant :

function test() { console.log( arguments ); }
test.length // 0

Cette fonction peut en effet transmettre des paramètres, et les paramètres sont également appelés en interne, mais length ne peut pas connaître le nombre de paramètres transmis.
Le nombre de paramètres réels ne peut être obtenu que via arguments.length lorsque la fonction est exécutée.

Copier le code Le code est le suivant :

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

Ainsi, l'attribut length d'une fonction ne peut obtenir que le nombre de ses paramètres formels, mais pas le nombre de paramètres réels.

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn