當我檢查MDN以瞭解關於閉包的一些觀點時,我遇到了下面的函數。該函數如何將參數傳遞給另一個內部函數參數
它可以是JavaScript中的已知模式,但對於java或.NET開發人員來說這很奇怪。 我想知道它是如何工作的,我知道JavaScript語言中的參數和第一類對象行爲,但如何將add5(2)
分配給y變量。
function makeAdder(x) {
return function(y) {
return x + y;
};
}
var add5 = makeAdder(5);
var add10 = makeAdder(10);
console.log(add5(2)); // 7
console.log(add10(2)); // 12
我想我得到了它,造成makeAdder(x)的返回功能(y)所以add5的值是函數(y)所以當我做add5(2)我通過2到y – Marzouk
閱讀http:// stackoverflow。com/questions/111102/how-do-javascript-closures-work?rq = 1 too –