说我有一个

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


我有不同编号的按钮,每个按钮都使用每个按钮的不同参数来调用函数。例如,数字1按钮将调用为

onclick="value(1)"


2号按钮将调用为

onclick="value(2)"


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

最佳答案

使用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

关于javascript - 每次单击按钮时将参数保存在数组中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31900201/

10-10 10:41