매개변수와 관련된 두가지 수가 있습니다.. 하나는 함수.length, 다른 하나는 arguments.length이다. arguments.length는 함수로 전달된 실제 인자의 수를 의미하고, 함수.length는 함수에 정의된 인자의 수를 의합니다.
function zero(){
console.log(
'zero.length', zero.length,
'arguments', arguments.length
);
}
function one(arg1){
console.log(
'one.length', one.length,
'arguments', arguments.length
);
}
function two(arg1, arg2){
console.log(
'two.length', two.length,
'arguments', arguments.length
);
}
zero(); // zero.length 0 arguments 0
one('val1', 'val2'); // one.length 1 arguments 2
two('val1'); // two.length 2 arguments 1
zero()호출할때 매개변수가 없고 인자도 없습니다.
밑에 one함수르 호출할때 매개변수가 하나입니다. 하지만 호출할때 2개의 인자값을 넣으면
one.length의 값은 1이됩니다. arguments.lengts의 값은 2가 됩니다.
이두개의 값이 다른 이유는 함수. length를 하게되면 그매개변수의 숫자를 알려줍니다.
하지만 arguments.lengts 는 one(val1,val2)가 있기때문에 2로 나옵니다. 몇개의 인자가 있는지 알려줍니다.
이두가지는 다른 의미입니다.
이포스팅은 생활코딩을 참고해서 만든 포스팅입니다. egoing님 감사합니다.
'JAVASCRIPT' 카테고리의 다른 글
생성자와 new 객체지향 (0) | 2020.11.04 |
---|---|
함수 호출 (0) | 2020.11.04 |
arguments (0) | 2020.11.03 |
클로저2 (0) | 2020.11.02 |
클로저1 (0) | 2020.11.02 |