OPEN between Secret

Java Script 에서 Method's overloading 하기 본문

java/Java script & jQuery

Java Script 에서 Method's overloading 하기

해가꿈꾸는달 2014. 7. 28. 13:45
반응형

Javascript에서 Method's overloading 하기



<!doctype html>

<html lang="en">

 <head>

  <meta charset="UTF-8">

<script type = "text/javascript">

<!--


/*  -1- javascript 에서는 함수를 이름으로 식별하기 때문에 처음에 sumall() 이 올라오고 다음에
                    sumall(x,y) -> sumAll(x,y,z) 가 올라와서 나중에는 sumAll(x,y,z)만 남게 된다.

즉 메소드 오버로딩이 안되서 나중에 함수를 호출할때 매개변수3개 짜리(sumAll(x,y,z)) 미만을 호출할시
메모리에 올라온게 없기 때문에 오류가 난다.

function sumAll(){

alert("sumAll()");

}


function sumAll(x,y){

alert("sumAll(x,y) : " + x + "," + y);

}


function sumAll(x,y,z){

alert("sumAll(x,y,z) : " + x + "," + y + "," + z);

}

*/

//  -2- 따라서 javascript 에서 Method's Overloading 하는 방법?

function sumAll() {

if(arguments.length==0){


}else if(arguments.length==1){


}else if (arguments.length==2){

var x = arguments[0];

var y = arguments[1];

alert("sumAll(x,y) : " + x + "," + y);

}else if (arguments.length==3){

var x = arguments[0];

var y = arguments[1];

var z = arguments[2];

alert("sumAll(x,y,z) : " + x + "," + y + "," + z);

}


}


sumAll(10,20);

//-->


</script>

 </head>

 <body>

  

 </body>

</html>



-3- 단 이렇게 해도 되지만 이걸 

*.js라는 javascript 형식의 파일로 빼서 (즉 라이브러리를 만든다 ?) 불러와서 사용하면 된다.

function sumAll() {

if(arguments.length==0){


}else if(arguments.length==1){


}else if (arguments.length==2){

var x = arguments[0];

var y = arguments[1];

alert("sumAll(x,y) : " + x + "," + y);

}else if (arguments.length==3){

var x = arguments[0];

var y = arguments[1];

var z = arguments[2];

alert("sumAll(x,y,z) : " + x + "," + y + "," + z);

}



}

이걸  *.js로 따로 저장.(ex ->> test.js 로 저장)


그럼 위의 코드가  깔끔하게 변한다.  여기서 중요할 점 ->    -4-


<!doctype html>

<html lang="en">

 <head>

  <meta charset="UTF-8">

<script src="test.js" type = "text/javascript">

sumAll(10,20,30)

</script>

 </head>

 <body>

  

 </body>

</html>


/*  -4- <script> ~</script> 까지 가야 메모리에 완전히 로딩이 되는 것이기 때문에 위의 소스처럼

src='test.js' 로 (정의되어 있는 라이브러리를 불러온) script 에서 sumAll() 을 하면 오류가 난다.

 따라서 ↓↓   처럼 새로운 script 에서 함수(sumAll())를 불러야 한다.

*/


<!doctype html>

<html lang="en">

 <head>

  <meta charset="UTF-8">

<script src="test.js" type = "text/javascript"> </script>


<script type = "text/javascript">

<!--

sumAll(10,20,30);

//-->


</script>

 </head>

 <body>

  

 </body>

</html>



반응형

'java > Java script & jQuery' 카테고리의 다른 글

java script  (0) 2014.07.28
Dom Level2 EventModel  (0) 2014.07.28
여러 객체를 하나의 이벤트로 처리하는방법??  (0) 2014.07.28
Java script 에서 객체생성?  (0) 2014.07.28
Inner Function  (0) 2014.07.28