JavaScript_Basic 지식 중 함수의 길이 속성에 대한 간략한 분석

WBOY
풀어 주다: 2016-05-16 16:46:45
원래의
1086명이 탐색했습니다.

[1,2,3].length는 3을 얻을 수 있고, "123".length도 3을 얻을 수 있습니다. js에 대해 조금 아는 사람이라면 누구나 이것을 알 것입니다.

그런데 eval.length, RegExp.length, "".toString.length, 1..toString.length는 무엇을 얻나요?

각각 1, 2, 0, 1을 얻습니다. 이 숫자는 무엇을 나타냅니까?

실제로는 함수의 길이가 형식적인 매개변수의 수를 얻는다는 질문입니다.
예를 간단히 살펴보겠습니다.

코드 복사 코드는 다음과 같습니다.

함수 테스트(a,b,c) {}
test.length // 3

함수 테스트(a,b,c,d) {}
test.length // 4

아주 간단하지만 특별한 것도 있습니다. 실제로 매개변수를 정의하지 않고 함수 내부에서 인수를 통해 매개변수를 호출하면 길이는 0만 얻게 됩니다.

코드 복사 코드는 다음과 같습니다.

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

이 함수는 실제로 매개변수를 전달할 수 있고 매개변수도 내부적으로 호출되지만 길이는 전달된 매개변수의 수를 알 수 없습니다.
실제 매개변수 개수는 함수 실행 시 인수.길이를 통해서만 얻을 수 있습니다.

코드 복사 코드는 다음과 같습니다.

function test() { console.log( 인수.길이 );}
test(1,2,3); // 출력 3
test(1,2,3,4); // 출력 4

따라서 함수의 길이 속성은 형식 매개변수의 개수만 얻을 수 있고 실제 매개변수의 개수는 얻을 수 없습니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿