/*
// 자바스크립트에서는 메서드 이름이 중복일경우 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));


반응형
Posted by 힘없는염소