每次单击按钮时,将参数保存在数组中

时间:2015-08-09 01:49:12

标签: javascript arrays

说我有一个

function value(num) {
  var numHolder = [];
  numHolder.push(num);
  console.log(num);
}

我有一个不同数字的按钮,每个按钮调用每个按钮的不同参数。例如,数字1按钮将作为

调用
onclick="value(1)" 

数字2按钮将作为

调用
onclick="value(2)"

如何在不使numHolder数组全局化的情况下将这些值保存在numHolder数组中?

1 个答案:

答案 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