자바스크립트는 일단 오버로딩 함수를 지원하지 않는다. 다만 매개 변수를 검사하는 방법으로 오버로딩이 되는 것처럼 응용할 수 있다.

function view(){
    alert(val);
}

function view(v){
   alert(v);
}

함수 선언을 이런 방법으로 했다면 첫번째 view()는 무시되고 view(v)로 인식하게 된다. 브라우저 버전에 따라 동일한 함수명을 사용 할 때 오류가 발생할 수도 있다.

매개변수 개수에 따라 함수 기능을 다르게 하는 방법은 아래 예문과 같다.

function view(){
    var a = arguments;
	switch (a.length){
     case 1: //-- 매개변수가 하나일 때
        var val = a[0];
		alert(val);
		break;
	case 2: //-- 매개변수가 두 개 일 때
     	var val = a[0];
    	var val2 = a[1];
 	    alert(val + val2);
		break;
	}
}


view("변수1");
view("변수1", "변수2");

switch문을 이용해 매개변수의 개수에 따라 처리 내용을 달리 할 수 있다.

자바스크립트에서는 함수의 매개변수의 개수를 이용하여 마치 오버로딩 함수처럼 사용자 함수를 구현 할 수 있다.

댓글을 달아 주세요