자바스크립트로 오버로딩 구현하기
자바스크립트는 일단 오버로딩 함수를 지원하지 않는다. 다만 매개 변수를 검사하는 방법으로 오버로딩이 되는 것처럼 응용할 수 있다.
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문을 이용해 매개변수의 개수에 따라 처리 내용을 달리 할 수 있다.
내용이 경어체라 죄송합니다. 반말 했다고 *태*처럼 저한테 욕하지 말아 주세요. ㅡㅡ; 2013년에 제 블로그에 올렸던 거 퍼왔습니다. 잘난척 한다고 할까봐 웬만해서는 Tip 안 올리는데 이건 제가 정말 유용하게 사용하고 있는 거라 공유합니다. ^^
댓글 1개
이렇게도 할수 있습니다.
function view(val){
alert(val);
}
view = (function() {
var cached_function = view;
return function() {
// your code
var a = arguments;
switch (a.length){
case 1: //-- 매개변수가 하나일 때
cached_function.apply(this, a); // use .apply() to call it
break;
case 2 : //-- 매개변수가 두 개 일 때
var val = a[0];
var val2 = a[1];
alert(val + val2);
break;
}
};
}());
view("변수1");
view("변수1", "변수2");
게시판 목록
프로그램
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 6430 | 12년 전 | 986 | ||
| 6429 | 12년 전 | 9113 | ||
| 6428 | 12년 전 | 609 | ||
| 6427 |
제이티37
|
12년 전 | 1575 | |
| 6426 |
프로프리랜서
|
12년 전 | 1159 | |
| 6425 |
프로프리랜서
|
12년 전 | 1617 | |
| 6424 |
프로프리랜서
|
12년 전 | 1817 | |
| 6423 | 12년 전 | 1006 | ||
| 6422 |
퍼블리셔지노군
|
12년 전 | 1582 | |
| 6421 | 12년 전 | 2213 | ||
| 6420 |
|
12년 전 | 1338 | |
| 6419 |
|
12년 전 | 1290 | |
| 6418 | 12년 전 | 1193 | ||
| 6417 |
senseme
|
12년 전 | 7435 | |
| 6416 |
senseme
|
12년 전 | 1333 | |
| 6415 |
senseme
|
12년 전 | 1196 | |
| 6414 |
senseme
|
12년 전 | 1972 | |
| 6413 |
senseme
|
12년 전 | 978 | |
| 6412 |
senseme
|
12년 전 | 1494 | |
| 6411 |
senseme
|
12년 전 | 1109 | |
| 6410 |
senseme
|
12년 전 | 1050 | |
| 6409 |
PASKRAN
|
12년 전 | 2822 | |
| 6408 | 12년 전 | 10807 | ||
| 6407 | 12년 전 | 2995 | ||
| 6406 |
프로프리랜서
|
12년 전 | 2842 | |
| 6405 |
프로프리랜서
|
12년 전 | 1378 | |
| 6404 |
프로프리랜서
|
12년 전 | 2728 | |
| 6403 |
프로프리랜서
|
12년 전 | 824 | |
| 6402 |
프로프리랜서
|
12년 전 | 1745 | |
| 6401 |
프로프리랜서
|
12년 전 | 1148 | |
| 6400 |
프로프리랜서
|
12년 전 | 1477 | |
| 6399 |
프로프리랜서
|
12년 전 | 1194 | |
| 6398 |
프로프리랜서
|
12년 전 | 1498 | |
| 6397 |
프로프리랜서
|
12년 전 | 3609 | |
| 6396 | 12년 전 | 1881 | ||
| 6395 | 12년 전 | 924 | ||
| 6394 |
|
12년 전 | 5242 | |
| 6393 |
제이티37
|
12년 전 | 1208 | |
| 6392 |
songsinica
|
12년 전 | 1218 | |
| 6391 |
|
12년 전 | 3400 | |
| 6390 |
|
12년 전 | 1632 | |
| 6389 | 12년 전 | 4862 | ||
| 6388 |
스누피사랑
|
12년 전 | 5436 | |
| 6387 | 12년 전 | 1842 | ||
| 6386 | 12년 전 | 3069 | ||
| 6385 |
희망과열정
|
12년 전 | 931 | |
| 6384 | 12년 전 | 3299 | ||
| 6383 | 12년 전 | 10604 | ||
| 6382 |
|
12년 전 | 5796 | |
| 6381 |
SugarSkull
|
12년 전 | 1036 | |
| 6380 | 12년 전 | 785 | ||
| 6379 |
|
12년 전 | 1990 | |
| 6378 | 12년 전 | 1575 | ||
| 6377 | 12년 전 | 504 | ||
| 6376 |
후라보노보노
|
12년 전 | 1342 | |
| 6375 | 12년 전 | 2875 | ||
| 6374 | 12년 전 | 844 | ||
| 6373 | 12년 전 | 2377 | ||
| 6372 |
takumi22
|
12년 전 | 1245 | |
| 6371 |
개초보제이
|
12년 전 | 783 | |
| 6370 |
고급자가되고
|
12년 전 | 1467 | |
| 6369 | 12년 전 | 892 | ||
| 6368 | 12년 전 | 3190 | ||
| 6367 | 12년 전 | 1884 | ||
| 6366 | 12년 전 | 2887 | ||
| 6365 |
lilyosia
|
12년 전 | 1803 | |
| 6364 | 12년 전 | 1064 | ||
| 6363 | 12년 전 | 1600 | ||
| 6362 | 12년 전 | 2744 | ||
| 6361 | 12년 전 | 2570 | ||
| 6360 | 12년 전 | 1016 | ||
| 6359 | 12년 전 | 2106 | ||
| 6358 |
|
12년 전 | 1795 | |
| 6357 |
에헤라디야자진방아를돌려라
|
12년 전 | 790 | |
| 6356 | 12년 전 | 2093 | ||
| 6355 | 12년 전 | 3794 | ||
| 6354 | 12년 전 | 3106 | ||
| 6353 | 12년 전 | 1552 | ||
| 6352 | 12년 전 | 7773 | ||
| 6351 | 12년 전 | 2542 | ||
| 6350 | 12년 전 | 2802 | ||
| 6349 | 12년 전 | 1885 | ||
| 6348 | 12년 전 | 3555 | ||
| 6347 | 12년 전 | 1454 | ||
| 6346 | 12년 전 | 1201 | ||
| 6345 | 12년 전 | 1840 | ||
| 6344 | 12년 전 | 1421 | ||
| 6343 |
프로프리랜서
|
12년 전 | 2063 | |
| 6342 |
프로프리랜서
|
12년 전 | 1391 | |
| 6341 |
프로프리랜서
|
12년 전 | 1821 | |
| 6340 |
프로프리랜서
|
12년 전 | 1912 | |
| 6339 |
프로프리랜서
|
12년 전 | 1356 | |
| 6338 |
프로프리랜서
|
12년 전 | 1620 | |
| 6337 | 12년 전 | 5282 | ||
| 6336 |
프로프리랜서
|
12년 전 | 1639 | |
| 6335 |
프로프리랜서
|
12년 전 | 955 | |
| 6334 |
프로프리랜서
|
12년 전 | 1337 | |
| 6333 |
프로프리랜서
|
12년 전 | 2446 | |
| 6332 | 12년 전 | 1104 | ||
| 6331 |
돗단배123
|
12년 전 | 1426 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기