最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js中方法重載如何實(shí)現(xiàn)?以及函數(shù)的參數(shù)問題

 更新時間:2013年08月01日 15:32:05   作者:  
js中沒有辦法直接實(shí)現(xiàn)方法重載,但每一個函數(shù)都有一個特殊的參數(shù)arguments,利用它可以實(shí)現(xiàn)方法的重載,具體示例如下
都知道在js中沒有辦法直接實(shí)現(xiàn)方法重載,因?yàn)樵趈s中如果定義了多個名稱相同,但參數(shù)個數(shù)不一樣的方法,其實(shí)只有最后一個方法能被真正調(diào)用,其他的方法都被覆蓋掉了。

但每一個函數(shù)都有一個特殊的參數(shù)arguments,利用它可以實(shí)現(xiàn)方法的重載。

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

function Add(firstnumber,sencondnumber) {
return firstnumber+sencondnumber;
}

只能處理兩個參數(shù),如果有多個參數(shù),或者沒有參數(shù),一個參數(shù)的情況都是處理不了的。如果沒有傳遞參數(shù),則firstnumber,sencondnumber都是未定義的,如果傳遞了一個參數(shù),就相當(dāng)于只給firstnumber賦值了,sencondnumber依然是未定義。相反如果傳遞了多于兩個的參數(shù),則相當(dāng)于firstnumber,sencondnumber都賦值了,雖然還有其他的參數(shù),但處理時都忽略掉了。如果能獲取其他的參數(shù),自然就可以處理了。此時應(yīng)該就可以想到函數(shù)的特殊參數(shù)arguments,這個包含了傳遞給函數(shù)的所有參數(shù),利用它就可以實(shí)現(xiàn)方法重載的效果。

以上的方法修改如下:
復(fù)制代碼 代碼如下:

function Add(firstnumber,sencondnumber) {
if (arguments.length == 0)//沒有傳遞參數(shù)
{
return null;
}
else if (arguments.length == 1) {//傳遞的是一個參數(shù)
return firstnumber;//也可以寫為 return arguments[0];
}
else if(arguments.length == 2)//傳遞的是兩個參數(shù)
{

return firstnumber+sencondnumber;//也可以寫為 return arguments[0]+arguments[1];
}

else {
var total=0;
for (var i = 0; i < arguments.length; i++) {
total=total+arguments[i]
}
return total;
}

}

當(dāng)然這種方法的弊端就是參數(shù)的順序不能打亂,如果函數(shù)實(shí)現(xiàn)依賴于參數(shù)的順序,就必須進(jìn)行特殊處理,例如傳遞null來占位。

由于傳遞給函數(shù)的參數(shù)是嚴(yán)格按照定義函數(shù)的順序給每一個參數(shù)賦值的,如果只想給第二個參數(shù)賦值,則必須傳遞兩個參數(shù),否則實(shí)際上傳遞的值賦值給了第一個參數(shù),并沒有賦值給第二個參數(shù)。

例如只想給sencondnumber傳值,但不想給firstnumber傳值,必須這樣調(diào)用Add(null,2)(當(dāng)然函數(shù)內(nèi)部必須處理傳遞特殊值的情況),如果這樣調(diào)用Add(2),其實(shí)是給firstnumber傳值了,相當(dāng)于調(diào)用了傳遞了一個參數(shù)的情況。

相關(guān)文章

  • JS數(shù)組索引檢測中的數(shù)據(jù)類型問題詳解

    JS數(shù)組索引檢測中的數(shù)據(jù)類型問題詳解

    這篇文章主要給大家介紹了關(guān)于JS數(shù)組索引檢測中的數(shù)據(jù)類型問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • JavaScript撤銷恢復(fù)操作的實(shí)現(xiàn)方法詳解

    JavaScript撤銷恢復(fù)操作的實(shí)現(xiàn)方法詳解

    這篇文章主要介紹了JavaScript撤銷恢復(fù)操作的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2023-02-02
  • JavaScript中常見內(nèi)置函數(shù)用法示例

    JavaScript中常見內(nèi)置函數(shù)用法示例

    這篇文章主要介紹了JavaScript中常見內(nèi)置函數(shù)用法,結(jié)合實(shí)例形式分析了JavaScript常用內(nèi)置函數(shù)的功能、參數(shù)、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2018-05-05
  • javascript常用的數(shù)組過濾和查找方法總結(jié)

    javascript常用的數(shù)組過濾和查找方法總結(jié)

    這篇文章主要介紹了javascript常用的數(shù)組過濾和查找方法的相關(guān)資料,這些方法各有特點(diǎn),適用于不同的數(shù)據(jù)處理場景,大家可以根據(jù)需求選擇不同的方法,需要的朋友可以參考下
    2024-12-12
  • JS實(shí)現(xiàn)的合并兩個有序鏈表算法示例

    JS實(shí)現(xiàn)的合并兩個有序鏈表算法示例

    這篇文章主要介紹了JS實(shí)現(xiàn)的合并兩個有序鏈表算法,結(jié)合實(shí)例形式分析了JavaScript鏈表的定義、節(jié)點(diǎn)插入、刪除、查找等相關(guān)算法實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2019-02-02
  • JavaScript使用?for...in?、?for...of?或者?forEach()?遍歷元素的示例

    JavaScript使用?for...in?、?for...of?或者?forEach()?遍歷元素的示例

    for...in?、?for...of?和?forEach?都是用于循環(huán)遍歷集合元素的方法,但它們之間有一些重要的區(qū)別,本文通過實(shí)例代碼介紹JavaScript使用?for...in?、?for...of?或者?forEach()?遍歷元素的相關(guān)知識,感興趣的朋友一起看看吧
    2023-09-09
  • JavaScript中閉包的寫法和作用詳解

    JavaScript中閉包的寫法和作用詳解

    本文給大家介紹javascript中的閉包,包括對js閉包概念的理解,閉包的幾種寫法和用法,閉包的主要作用,閉包與this對象,閉包與內(nèi)存泄露及使用閉包的注意點(diǎn)相關(guān)知識,非常不錯,具有參考借鑒價值,感興趣的朋友一起學(xué)習(xí)吧
    2016-06-06
  • layui表單驗(yàn)證select下拉框?qū)崿F(xiàn)驗(yàn)證的方法

    layui表單驗(yàn)證select下拉框?qū)崿F(xiàn)驗(yàn)證的方法

    今天小編就為大家分享一篇layui表單驗(yàn)證select下拉框?qū)崿F(xiàn)驗(yàn)證的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • JS數(shù)組求和的常用方法實(shí)例小結(jié)

    JS數(shù)組求和的常用方法實(shí)例小結(jié)

    這篇文章主要介紹了JS數(shù)組求和的常用方法,結(jié)合實(shí)例形式總結(jié)分析了javascript常見的遍歷、循環(huán)、歸并等數(shù)組操作相關(guān)技巧,需要的朋友可以參考下
    2019-01-01
  • 微信小程序wxs日期時間處理的實(shí)現(xiàn)示例

    微信小程序wxs日期時間處理的實(shí)現(xiàn)示例

    最近在做一個列表的時候,涉及到時間格式化操作。本文主要介紹了微信小程序wxs日期時間處理的實(shí)現(xiàn)示例,分享給大家,感興趣的可以了解一下
    2021-07-07

最新評論

阿拉善右旗| 海南省| 新绛县| 绥芬河市| 琼海市| 松江区| 陈巴尔虎旗| 万宁市| 左云县| 灵丘县| 罗山县| 克山县| 兴海县| 海南省| 尼木县| 依兰县| 泊头市| 阿城市| 全州县| 叶城县| 宜州市| 重庆市| 麟游县| 潞城市| 澄城县| 运城市| 鄂温| 承德县| 黄山市| 九江市| 寿光市| 永康市| 华安县| 汉阴县| 娄底市| 亳州市| 锦屏县| 云安县| 伊宁市| 汉源县| 安福县|