说我有一个
function value(num) {
var numHolder = [];
numHolder.push(num);
console.log(num);
}
我有一个不同数字的按钮,每个按钮调用每个按钮的不同参数。例如,数字1按钮将作为
调用onclick="value(1)"
数字2按钮将作为
调用onclick="value(2)"
如何在不使numHolder数组全局化的情况下将这些值保存在numHolder数组中?
答案 0 :(得分:2)
使用 IIFE 创建一个闭包
// `value` is initialised but undefined here (can be referenced because of `var`)
// ..
var value = (function (numHolder) { // IIFE creating closure
return function (num) { // function expression to be assigned to `value`
numHolder.push(num);
console.log(num);
// `numHolder` accessible here
};
// `numHolder` accessible here
}([])); // initial value for `numHolder`
// `value` is fully defined here