[1,2,3]. O comprimento pode obter 3, "123". O comprimento também pode obter 3, e aqueles que entendem JS um pouco sabem disso.
Mas o que vai avaliar. comprimento, regexp. comprimento, "" .ToString. comprimento, 1..ToString. comprimento ?
Obtenha 1, 2, 0, 1, respectivamente. O que esses números representam?
De fato, o comprimento da função resulta no número de parâmetros formais.
Vamos dar um breve exemplo:
teste de função (a, b, c) {} test.length // 3function test (a, b, c, d) {} test.length // 4Não é muito simples, mas também existem especiais. Se a função chamar parâmetros por meio de argumentos sem definir os parâmetros, o comprimento só receberá 0.
function test () {console.log (argumentos);} test.length // 0Essa função pode realmente passar os parâmetros e os parâmetros também são chamados internamente, mas o comprimento não pode saber o número de parâmetros passados.
Os parâmetros reais só podem ser obtidos por meio de argumentos. comprimento quando a função é executada.
function test () {console.log (argumentos.length);} teste (1,2,3); // saída 3test (1,2,3,4); // saída 4Portanto, a propriedade de comprimento de uma função pode obter apenas o número de seus parâmetros formais, mas não pode saber o número de parâmetros reais.