JavaScript 中的巢狀函式
Shivam Arora
2021年10月2日
函式是一個有用的程式碼塊,可以在程式中需要的任何地方呼叫。巢狀函式是函式內的函式。許多程式語言都支援這樣的功能,包括 JavaScript。
我們將在本教程中介紹 JavaScript 中的巢狀函式。
外部的函式稱為外部函式。巢狀在裡面的函式稱為內部函式。每個函式都可以接受不同的引數。
它們可以通過以下方式實現。
function a(x) { // Outer function
function b(y) { // inner function
return x - y;
}
return b;
}
console.log(a(5)(4))
輸出:
1
在上面的示例中,a()
是外部函式,而 b()
是內部函式。返回的最終結果使用來自兩個函式的引數。
函式是可以在外部函式中定義並在函式的任何部分像變數一樣建立的類物件。這種方法稱為柯里化。
請參考下面的程式碼。
function outer(x) {
var w = function inner(y) {
return x * y;
}
return w;
};
var outvar = outer(2);
console.log(outvar(4));
輸出:
8
巢狀函式還有另一個好處。它們可用於在另一個函式內部執行計算,即使它們是在外部定義的。
例如,
function calculate(a,b,fn){
var c = a + b + fn(a,b);
return c;
}
function sum(a,b) {
return a+b;
}
function product(a,b) {
return a*b;
}
console.log(calculate (10,20,sum));
console.log(calculate (10,20,product));
輸出:
60
230