자바스크립트로 오버로딩 구현하기
자바스크립트는 일단 오버로딩 함수를 지원하지 않는다. 다만 매개 변수를 검사하는 방법으로 오버로딩이 되는 것처럼 응용할 수 있다.
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");
게시판 목록
프로그램
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 6930 |
SOFTA
|
11년 전 | 5986 | |
| 6929 |
|
11년 전 | 1601 | |
| 6928 | 11년 전 | 1762 | ||
| 6927 | 11년 전 | 1787 | ||
| 6926 | 11년 전 | 1886 | ||
| 6925 | 11년 전 | 2279 | ||
| 6924 | 11년 전 | 3876 | ||
| 6923 | 11년 전 | 2277 | ||
| 6922 |
level999
|
11년 전 | 1044 | |
| 6921 | 11년 전 | 822 | ||
| 6920 | 11년 전 | 962 | ||
| 6919 | 11년 전 | 1074 | ||
| 6918 | 11년 전 | 1313 | ||
| 6917 | 11년 전 | 15430 | ||
| 6916 | 11년 전 | 1428 | ||
| 6915 | 11년 전 | 589 | ||
| 6914 | 11년 전 | 621 | ||
| 6913 | 11년 전 | 881 | ||
| 6912 | 11년 전 | 3127 | ||
| 6911 |
사랑해요79
|
11년 전 | 972 | |
| 6910 | 11년 전 | 750 | ||
| 6909 | 11년 전 | 786 | ||
| 6908 | 11년 전 | 646 | ||
| 6907 | 11년 전 | 833 | ||
| 6906 | 11년 전 | 1590 | ||
| 6905 | 11년 전 | 576 | ||
| 6904 | 11년 전 | 1013 | ||
| 6903 | 11년 전 | 1683 | ||
| 6902 |
2donggalbi
|
11년 전 | 521 | |
| 6901 | 11년 전 | 1400 | ||
| 6900 | 11년 전 | 724 | ||
| 6899 | 11년 전 | 866 | ||
| 6898 |
열라뽕똬이
|
11년 전 | 1318 | |
| 6897 |
this1mg
|
11년 전 | 1618 | |
| 6896 |
sbdossb
|
11년 전 | 585 | |
| 6895 |
봉보로봉봉
|
11년 전 | 1162 | |
| 6894 |
똘똘이스머츠
|
11년 전 | 500 | |
| 6893 |
네이비컬러
|
11년 전 | 3646 | |
| 6892 | 11년 전 | 1081 | ||
| 6891 |
네이비컬러
|
11년 전 | 1326 | |
| 6890 | 11년 전 | 1152 | ||
| 6889 | 11년 전 | 595 | ||
| 6888 | 11년 전 | 731 | ||
| 6887 | 11년 전 | 621 | ||
| 6886 | 11년 전 | 5063 | ||
| 6885 | 11년 전 | 562 | ||
| 6884 |
asfasdfd235
|
11년 전 | 592 | |
| 6883 | 11년 전 | 3057 | ||
| 6882 | 11년 전 | 952 | ||
| 6881 | 11년 전 | 4444 | ||
| 6880 | 11년 전 | 1823 | ||
| 6879 |
퍼블리셔지노군
|
11년 전 | 2638 | |
| 6878 | 11년 전 | 572 | ||
| 6877 | 11년 전 | 589 | ||
| 6876 | 11년 전 | 1453 | ||
| 6875 | 11년 전 | 635 | ||
| 6874 | 11년 전 | 1605 | ||
| 6873 | 11년 전 | 1607 | ||
| 6872 | 11년 전 | 4466 | ||
| 6871 |
Abilityarch
|
11년 전 | 972 | |
| 6870 | 11년 전 | 2132 | ||
| 6869 | 11년 전 | 1413 | ||
| 6868 | 11년 전 | 1459 | ||
| 6867 | 11년 전 | 1531 | ||
| 6866 | 11년 전 | 748 | ||
| 6865 | 11년 전 | 1622 | ||
| 6864 | 11년 전 | 483 | ||
| 6863 | 11년 전 | 3755 | ||
| 6862 | 11년 전 | 1856 | ||
| 6861 | 11년 전 | 1652 | ||
| 6860 | 11년 전 | 1312 | ||
| 6859 |
cityman
|
11년 전 | 6818 | |
| 6858 | 11년 전 | 1277 | ||
| 6857 |
의정부아줌마
|
11년 전 | 874 | |
| 6856 | 11년 전 | 2377 | ||
| 6855 | 11년 전 | 1706 | ||
| 6854 | 11년 전 | 835 | ||
| 6853 | 11년 전 | 1212 | ||
| 6852 | 11년 전 | 2600 | ||
| 6851 | 11년 전 | 1979 | ||
| 6850 | 11년 전 | 1802 | ||
| 6849 | 11년 전 | 2094 | ||
| 6848 | 11년 전 | 2372 | ||
| 6847 | 11년 전 | 3150 | ||
| 6846 | 11년 전 | 2727 | ||
| 6845 | 11년 전 | 2806 | ||
| 6844 | 11년 전 | 3530 | ||
| 6843 | 11년 전 | 3276 | ||
| 6842 |
아트291
|
11년 전 | 698 | |
| 6841 | 11년 전 | 4174 | ||
| 6840 | 11년 전 | 5192 | ||
| 6839 | 11년 전 | 902 | ||
| 6838 |
|
11년 전 | 2100 | |
| 6837 | 11년 전 | 1286 | ||
| 6836 |
netdf
|
11년 전 | 621 | |
| 6835 |
|
11년 전 | 1015 | |
| 6834 | 11년 전 | 683 | ||
| 6833 |
|
11년 전 | 2693 | |
| 6832 |
울산굿모닝
|
11년 전 | 1670 | |
| 6831 |
|
11년 전 | 676 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기