在JavaScript中,我們可以調用一個函數,如下所述?如果是的話,它背後的邏輯是什麼?在JavaScript中,我們可以調用一個函數作爲functionName(5)(3);?
var pro = function(a){
...
}
pro(5)(3);
在JavaScript中,我們可以調用一個函數,如下所述?如果是的話,它背後的邏輯是什麼?在JavaScript中,我們可以調用一個函數作爲functionName(5)(3);?
var pro = function(a){
...
}
pro(5)(3);
var pro = function(a) { return function(b) { return a * b; } };
console.log(pro(5)(3)); // 15
基本上,如果一個函數的返回值本身就是一個功能,您就可以轉身立即調用返回的功能在同一個表達式;這就是語法的含義。你也可以使用一箇中間變量:
var times5 = pro(5);
console.log(times5(3)); // 15
在上述情況下,結果是一樣的,如果你已經定義times5
直接像這樣:
function times5(b) { return 5 * b; }
有大量的應用程序返回功能功能;一般情況下,將函數作爲表達式中的常規值傳遞給其他函數等,稱爲Higher-order programming。作爲Javascript中的一個實際問題,在動態創建或關聯網頁元素和動作函數時,您通常必須這樣做;調用函數返回函數可以確保每個函數都有自己獨特的變量,避免了由於var
範圍限制而導致的重用。
在一些其他語言中,當您將少量參數傳遞給某個函數時,它會自動返回另一個函數,以便在傳遞其餘參數時完成作業。這在Haskell Curry之後被稱爲currying,而在the language given his other name中,這實際上是編寫多個參數函數的唯一方法:編寫一個返回函數的函數,該函數返回一個函數...,該函數接受最後一個參數並返回結果。
如果pro(5)
返回一個函數,那麼是的。
如果沒有,那麼你會得到一個錯誤。