Chapter 10. 자바스크립트의 내장 객체 - argument
자바스크립트에서는 함수를 호출할 때
함수 형식에 맞춰 인자를 넘기지 않더라도 에러가 발생하지 않는다.
정의된 함수의 인자보다 적게 인자를 넘겨주면
넘겨지지 않은 인자에 대해서는 undefined 값이 할당되고
정의된 함수의 인자보다 많게 인자를 넘겨주게 되면
초과된 인수는 가볍게 무시된다!
자바스크립트의 이러한 특성 때문에
함수 코드를 작성할 때, 런타임 시에 호출된 인자의 개수를 확인하고
이에 따라 동작을 다르게 해줘야 할 경우가 있다.
code>
1 2 3 4 5 6 7 | function func (arg1, arg2){ console.log(arg1, arg2); } func( ); // > undefined undefined func(1); // > 1 undefined func(1,2); // > 1 2 func(1,2,3); // > 1 2 | cs |
이를 가능하게 하는 것이 arguments 객체다
arguments 객체는 함수를 호출할 때 넘긴 인자들이 배열 형태로 저장된 객체를 의미한다
이 객체는 실제 배열이 아닌 유사 배열 객체이다.
이 arguments 객체를 잘 활용하면 유연한 함수를 만들 수 있다.
code>
1 2 3 4 5 6 7 8 9 10 | function sum( ){ var result = 0; for(var i=0; i<arguments.legth; i++){ result += arguments[i]; } return result; } console.log(sum(1,2,3)); // > 6 console.log(sum(1,2,3,4,5,6,7,8,9)); // > 45 | cs |
'Dev.FrontEnd > JavaScript' 카테고리의 다른 글
JavaScript 로 알아보는 클라이언트 사이드 렌더링 MVC 구조 (0) | 2016.08.19 |
---|---|
11. 자바스크립트의 함수 호출과 this (0) | 2016.08.11 |
9. 자바스크립트의 내장 객체 - 배열 ( Array ) (0) | 2016.08.10 |
#Javascript 에서의 include ( 외부 소스 코드 삽입하기 ) (0) | 2016.08.08 |
[JS_Design Pattern] 2. 모듈 패턴 ( Module Pattern ) (0) | 2016.08.06 |