2016-05-06 34 views

回答

5

您可以編寫類似:

function addTogether(a, b) { 
    if (b === undefined) { 
    return function (b) { return a + b; } 
    } else { 
    return a + b; 
    } 
} 

然而,返回一個函數或數將爲你的用戶混淆(最好)。我會建議總是返回一個函數,但允許它被稱爲沒有參數(只稍好):

function addTogether(a, b) { 
    if (b === undefined) { 
    return function (c) { return a + c; } 
    } else { 
    return function () { return a + b; } 
    } 
} 
+0

FWIW:'b == null'處理'b === undefined || b === null' –

+0

不,只有當其中一個操作數爲'null'或'undefined'的情況下'=='纔會返回'true',如果另一個操作數也是'null'或'undefined' .. 。'0 == null; // false'這只是我在真實代碼中使用'=='的唯一時間。我同意,'null'檢查可能不需要。 –

+0

@squint呵,你是對的。我認爲'=='會將0視爲足夠虛的匹配null,但顯然不是。 – ssube