我正在尝试生成包含使用其他对象属性的函数的对象。这有点难以解释,所以让我举一个例子:
我写过那段代码:
var myarray = [
{name: "n1"},
{name: "n2"},
{name: "n3"},
{name: "n4"},
{name: "n5"},
];
var printers = [];
for (index=0;index<5;index++) {
var obj = myarray[index];
printers[index] = {
myfunc : function(titi, tata) {
console.log("name: " + obj.name);
}
}
}
for (index=0;index<printers.length;index++) {
printers[index].myfunc();
}
当我执行代码时,我得到了结果:
name: n5
name: n5
name: n5
name: n5
name: n5
我需要的是:
name: n1
name: n2
name: n3
name: n4
name: n5
如果那里有人可以帮助我了解你如何在javascript中管理它,我会很高兴。
答案 0 :(得分:1)
试试这个
printers[index] = {
myfunc : function (name) {
return function(titi, tata) {
console.log("name: " + name);
}
}(obj.name)
}