我想根据数据表中的内容创建多个不同的函数,并将它们存储在一个对象中供以后使用。
让我们看看这个简单的例子:
var arrayPl = [];
function myFunction() {
var carNames = ["Volvo", "Nissan"];
var counter = 0;
for (var i in carNames) {
arrayPl[counter] = function() {
alert(carNames[i]);
};
counter++;
}
}
myFunction();
arrayPl[0]();
在这里,我想创建与car names
一样多的函数,并将它们保存在一个对象arrayPl
中,我可以在以后调用这些函数。
现在显然这个例子没有解释为什么我需要这样做 - 但至少它显示了我的问题,因为第一个函数arrayPl[0]();
给了我第二个汽车名称而不是第一个。
解释这背后的原因对我来说太复杂了,而不是那么重要(Adobe LiveCycle中的对话) - 我只是想知道我所问的是一般的可能性,如果可能的话。
答案 0 :(得分:1)
我更喜欢这种语法:
var arrayPl = [];
function myFunction() {
var carNames = ["Volvo", "Nissan"];
carNames.forEach( function(element, i) {
arrayPl[i] = function() {
alert(carNames[i]);
}
})
}
myFunction();
arrayPl[0]();