JavaScript
[JavaScript] 자바스크립트 arguments객체로 메서드 오버로딩 흉내내기
힘없는염소
2016. 1. 18. 10:59
/*// 자바스크립트에서는 메서드 이름이 중복일경우 overwrite되어 마지막 함수만 실행된다. (sum변수에 마지막 함수만 참조하게 된다는 의미)function sum(a, b) {return a + b;}function sum(a, b, c) {return a + b + c;}function sum(a, b, c, d) {return a + b + c + d;}*/// 메서드오버로딩 : 메서드의 이름은 같고, 개수(타입)가 다를때 개수(타입)에 맞게 호출되는 기능을 말한다.// 자바스크립트에서는 메서드오버로딩을 지원하지 않지만 arguments객체를 이용하여 흉내???낼 수 있다.function sum() {var result = 0;// arguments 객체는 함수가 실행했을때만 사용할수 있는 객체이다.// arguments 개체는 배열은 아니다. 하지만 배열과 동일하게 접근하여 사용할수 있다.var args = arguments.length; // 매개변수 갯수 얻기// console.log(args);for (var i=0; i<args; i++) {result = result + arguments[i];};switch(args) {case 2 : return result; break;case 3 : return result; break;case 4 : return result; break;default : return null; break;}}console.log(sum());console.log(sum(10, 20));console.log(sum(10, 20, 43));console.log(sum(10, 20, 43, 100));
반응형