第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

JavaScript中的方法重載

JavaScript中的方法重載

偶然的你 2019-10-21 10:15:54
我在Javascript代碼中使用以下方法重載。function somefunction(){    //1st function}function somefunction(a){   //2nd function}function somefunction(a,b){   //3rd function}somefunction(); // function call goes here我不明白的是,如果我調(diào)用somefunction()javascript應(yīng)該調(diào)用第一個(gè)函數(shù),但是問(wèn)題是javascript實(shí)際上調(diào)用了第三個(gè)函數(shù)。這是為什么?如何調(diào)用第一和第二函數(shù)?這是什么原因呢?有沒(méi)有適當(dāng)?shù)姆椒梢栽贘avascript中實(shí)現(xiàn)方法重載?行業(yè)標(biāo)準(zhǔn)是什么?
查看完整描述

3 回答

?
慕俠2389804

TA貢獻(xiàn)1719條經(jīng)驗(yàn) 獲得超6個(gè)贊

JavaScript不支持方法重載(如Java或類似方法),您的第三個(gè)函數(shù)將覆蓋之前的聲明。


而是通過(guò)argumentsobject支持變量參數(shù)。你可以做


function somefunction(a, b) {

    if (arguments.length == 0) { // a, b are undefined

        // 1st body

    } else if (arguments.length == 1) { // b is undefined

        // 2nd body

    } else if (arguments.length == 2) { // both have values

        // 3rd body

    } // else throw new SyntaxError?

}

你也可以只檢查typeof a == "undefined"等,這將允許呼叫somefunction(undefined),其中arguments.length為1。這可能允許使用各種參數(shù)進(jìn)行輕松調(diào)用,例如,當(dāng)您有可能為空的變量時(shí)。


查看完整回答
反對(duì) 回復(fù) 2019-10-21
?
慕容708150

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超4個(gè)贊

JS將傳遞undefined未提供的任何參數(shù)。如果您想要類似重載的操作,則需要執(zhí)行類似于以下代碼的操作:


function someFunction(a, b) {

    if (typeof a === 'undefined') {

        // Do the 0-parameter logic

    } else if (typeof b === 'undefined') {

        // Do the 1-parameter logic

    } else {

        // Do the 2-parameter logic

    }

}


查看完整回答
反對(duì) 回復(fù) 2019-10-21
?
犯罪嫌疑人X

TA貢獻(xiàn)2080條經(jīng)驗(yàn) 獲得超4個(gè)贊

您只是在somefunction每個(gè)新聲明中擦除變量。


這相當(dāng)于


   window.somefunction = function(...

   window.somefunction = function(...

   window.somefunction = function(...

Javascript不提供方法重載。


正確的方法是:


定義第三個(gè)功能并測(cè)試定義了哪些參數(shù)

只傳遞一個(gè)包含參數(shù)的對(duì)象(這并沒(méi)有什么不同,但更干凈)


查看完整回答
反對(duì) 回復(fù) 2019-10-21
  • 3 回答
  • 0 關(guān)注
  • 504 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)