亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Javascript基礎(chǔ) 函數(shù)“重載” 詳細(xì)介紹

 更新時(shí)間:2013年10月25日 15:22:46   投稿:shangke  
這篇文章介紹了Javascript基礎(chǔ) 函數(shù)“重載” ,有需要的朋友可以參考一下

  Javascript不像其他編程語言一樣具有函數(shù)簽名(什么是函數(shù)簽名,簡單的說就是說函數(shù)的接受參數(shù)類型和參數(shù)個(gè)數(shù),也有人認(rèn)為返回類型也應(yīng)該包括。具體概念大家可以到網(wǎng)上查詢)。

所以Javascript是不能像其他語言一樣實(shí)現(xiàn)方法名相同,參數(shù)個(gè)數(shù)不同…的這類重載的,不信你可以試試:

復(fù)制代碼 代碼如下:

         function show(){
             alert("1");
         }
         function show(num1){
             alert(num1);
         }
        
         window.onload=function(){
             show();
             show(2);
         }

斷點(diǎn)調(diào)試下,不帶參數(shù)的show方法是不會(huì)被執(zhí)行的,它會(huì)被show(num1)方法給覆蓋掉。

那么Javascript中就不可以實(shí)現(xiàn)“重載”了么?答案是可以的,只是是另一種方式而已。對,就是利用arguments。

那么什么是arguments呢?在JS中它是一個(gè)特殊的屬性,它可以像數(shù)組一樣通過下標(biāo)索引獲取參數(shù)的值(但它不是數(shù)組),通過length獲取參數(shù)個(gè)數(shù):

復(fù)制代碼 代碼如下:

         function showParamsCount(){
             alert("參數(shù)個(gè)數(shù):"+arguments.length);//輸出:參數(shù)個(gè)數(shù):4
             alert("下標(biāo)索引為3的參數(shù):"+arguments[3]);//輸出: 下標(biāo)索引為3的參數(shù):你好
         }
        
         window.onload=function(){
             showParamsCount("Hello",4,5,"你好");
         }

還要知道的一點(diǎn)是JS中函數(shù)的命名參數(shù)不是必須的,所以要想知道調(diào)用時(shí)傳遞了多少個(gè)參數(shù)還是得通過arguments獲取參數(shù)。

下面就實(shí)現(xiàn)一個(gè)簡單的方法重載:

這樣JS的重載算是實(shí)現(xiàn)了。

在看js高級程序設(shè)計(jì)這本書的時(shí)候發(fā)現(xiàn)arguments的值與對應(yīng)命名參數(shù)的值永遠(yuǎn)同步,以前沒注意過這個(gè)問題

好吧關(guān)于js“重載”的基礎(chǔ)知識就這么些

相關(guān)文章

最新評論