1. 程式人生 > >第202天:js---重載和多態

第202天:js---重載和多態

方式 attr fun cti jquery string --重載 col pos

一、根據arguments個數實現重載

js本身不支持重載,所以只能通過其他方式實現,arguments檢測傳參的個數,然後再執行不同的方式

 1 function add() {
 2         var sum = 0 ;
 3         for ( var i = 0 ; i < arguments.length; i ++ ) {
 4             sum += arguments[i];
 5         }
 6         return sum;
 7     }
 8     alert(add());
 9     alert(add( 1 , 2 ));
10 alert(add( 1 , 2 , 3 ));

二、檢測數據類型實現重載

根據傳參的類型,調用不同的方法,用typeof進行檢測

 1 //檢測數據類型實現重載 typeof
 2     var MyClass=function(){
 3         var AddNum=function(a,b){
 4             return a+b;
 5         }
 6         var AddString=function(a,b){
 7             return "I am here"+a+b;
 8         }
 9         this
.Add=function(a,b){ 10 if(typeof(a)=="number") 11 return AddNum(a,b); 12 else 13 return AddString(a,b); 14 } 15 } 16 17 function add(a,b){ 18 return a+b; 19 } 20 21 function add(a,b){ 22 return "I am here"+a+b;
23 } 24 25 var MyObj = new MyClass(); 26 var X = MyObj.Add(5,6); 27 var Y = MyObj.Add("A","FFFFFF"); 28 alert(X); //結果:11 29 alert(Y); //結果:I am hereAFFFFFF

三、jquery中的重載

如果傳遞2個參數表示獲取值,傳遞三個參數表示賦值

 1 function attr(id, key, value){
 2         var dom =  $$.$id(id);
 3         var args = arguments.length;
 4         if(args ===3 ){
 5             dom.setAttribute(key, value);
 6         }else{
 7             return dom.getAttribute(key);
 8         }
 9     }
10 attr(1,2);
11 attr(1,2,3);

第202天:js---重載和多態