第202天:js---重載和多態
阿新 • • 發佈:2018-03-26
方式 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---重載和多態