js의 모든 것은 객체입니다. 심지어 함수도 객체입니다. 함수 이름은 실제로 함수에 의해 정의된 객체를 참조하는 변수입니다.
1. 인수란 무엇인가요?
이 함수 본문의 인수는 실제로 함수의 내장 배열형 객체입니다. 배열의 [i] 및 .length를 사용할 수 있습니다.
2. 기능은 무엇인가요?
js 구문은 오버로딩을 지원하지 않습니다! 그러나 인수 개체를 사용하여 오버로딩 효과를 시뮬레이션할 수 있습니다.
인수 객체: 함수 객체 내에서 모든 매개변수 값을 받기 위해 자동으로 생성된 배열형 객체가 특별히 생성됩니다.
arguments[i]: 아래 첨자 i를 사용하여 전달된 매개변수 값을 가져옵니다.
arguments.length: 전달된 매개변수 수를 가져옵니다!
오버로딩:
동일한 함수 이름과 다른 매개변수 목록을 가진 여러 함수를 프로그램에서 정의할 수 있습니다.
호출자는 매개변수를 구분할 필요가 없습니다.
실행 시, 프로그램은 전달된 매개변수 수에 따라 어떤 함수를 실행할지 자동으로 결정합니다.
예제는 다음과 같습니다.
// 1、如果用户传入一个参数,求平方 function sum(a){ console.log(a*a); } //如果用户传入两个参数,就求和 function sum(a,b){ console.log(a+b); } sum(4); //? sum(4,5); //?
위 예에서는 원래 의도는 같은 이름의 함수 sum()이 다른 결과에 따라 다른 결과를 출력하도록 하는 것입니다. 매개변수이지만 sum은 함수 이름이고 본질적으로 변수입니다.
두 번째 항목은 첫 번째 항목을 덮어쓰므로 위의 올바른 출력 답변은 NaN,9입니다. 가능한.
인수를 사용하면 훨씬 간단합니다.
다음 두 가지 예:
//2、 function calc(){ //如果用户传入一个参数,求平方 if(arguments.length==1){ console.log(arguments[0]*arguments[0]); }else if(arguments.length==2){ //如果用户传入两个参数,就求和 console.log(arguments[0]+arguments[1]); } } calc(4); //16 calc(4,5); //9 /*3、无论用户传入几个数字,都可以求和*/ function add(){ //arguments:[] //遍历arguments中每个元素,并累加 for(var i=0,sum=0;i<arguments.length;sum+=arguments[i++]); return sum;//返回和 } console.log(add(1,2,3)); //6 console.log(add(1,2,3,4,5,6)); //21
이것은 인수 오버로딩을 사용하는 JS의 효과입니다. 간단히 이해하면 함수가 재사용된다는 것입니다.
인수.길이는 실제 매개변수, 즉 함수 호출의 매개변수 개수에 따라 결정됩니다!
위 내용은 편집자가 소개한 Javascript의 인수 객체에 대한 지식입니다. 궁금한 사항이 있으면 메시지를 남겨주시면 편집자가 답변해 드리겠습니다. 시간이 지나면. 또한 PHP 중국어 웹사이트를 지원해 주신 모든 분들께 감사드립니다!
자바스크립트의 인수객체에 대한 더 많은 글을 보시려면 PHP 중국어 홈페이지를 주목해주세요!