일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- https://minkwon4.tistory.com/161
- 국회의원 & 높으신 분들 어록
- https://tecoble.techcourse.co.kr/post/2021-08-07-logback-tutorial/
- Today
- Total
OPEN between Secret
Java Script 에서 Method's overloading 하기 본문
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 |