例如,讓我們使用函數add。我想打電話給:
add(1, 2)(3, 4)
and
add(1, 2)
使用相同的實現。我嘗試過用以下方式編寫add函數:
var add = (a, b) => {
return (c, d) => {
return a + b + c + d;
}
}
這對add(1,2)(3,4)很好,但對add(1,2)不起作用。我不確定如何在返回函數之前檢查函數是否傳遞了參數。
例如,讓我們使用函數add。我想打電話給:
add(1, 2)(3, 4)
and
add(1, 2)
使用相同的實現。我嘗試過用以下方式編寫add函數:
var add = (a, b) => {
return (c, d) => {
return a + b + c + d;
}
}
這對add(1,2)(3,4)很好,但對add(1,2)不起作用。我不確定如何在返回函數之前檢查函數是否傳遞了參數。
公眾號:1024技術圈
?? 提供互聯網知識和資訊,分享IT前沿技術,熱門資源,大廠面試題 ??
由于函數(在被調用時)無法知道其返回值是否也會像函數一樣被調用,因此最好的方法是讓返回值可調用,并使用
valueOf
方法,以便它可以直接用作期望數字的更大表達式中的數字:這里的“技巧”是
+
運算符強制其操作數強制為一個數字,這將隱式調用add
求值為function-object的valueOf
方法。該+
運算符只是調用valueOf
方法的眾多方法之一。再舉幾個例子: