javascript模擬實現函數重載:函數重載功能必須要模擬實現,因為本身並不具備,關於函數重載的概念這裡就不多介紹了,因為不知道何為重載,那麼本章節也就沒有任何意義了,下麵先看一段代碼實例:function func(){alert("螞蟻部落");}function func(num){aler...
javascript模擬實現函數重載:
函數重載功能必須要模擬實現,因為本身並不具備,關於函數重載的概念這裡就不多介紹了,因為不知道何為重載,那麼本章節也就沒有任何意義了,下麵先看一段代碼實例:
function func(){alert("螞蟻部落");} function func(num){alert(num)} func(); func(2);
以上代碼中,第一個彈出undefined第二個彈出2,這說明第一個函數已經被第二個覆蓋了,這說明js並沒有重載。
下麵就來介紹一下如何模式實現重載效果。在js中arguments可以返回一個對象,它存放的是傳入函數的實參,通過索引可以訪問每一個實參,例如arguments[0]就是傳入的第一個實參。
特別註意:javascript中,函數的形式參數正如其名,只是一個形式而已,例如只有一個形參,你完全可以傳入任意多個參數。
於是我們就可以利用js函數的這兩個特點,進行一下判斷就可以了,代碼實例如下:
function func() { if(arguments.length==0) { alert("螞蟻部落"); } else if(arguments.length==1) { alert(arguments[0]) } } func(); func(2);
以上就簡單模擬實現了函數的重載效果。
相關閱讀:
1.arguments屬性可以參閱javascript的arguments對象一章節。
原文地址是:http://www.softwhy.com/forum.php?mod=viewthread&tid=9797
更多內容可以參閱:http://www.softwhy.com/javascript/