javascript:基于包含在数组中的对象属性的函数生成

时间:2015-01-30 08:42:00

标签: javascript

我正在尝试生成包含使用其他对象属性的函数的对象。这有点难以解释,所以让我举一个例子:

我写过那段代码:

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中管理它,我会很高兴。

1 个答案:

答案 0 :(得分:1)

试试这个

printers[index] = {
    myfunc : function (name) {
       return function(titi, tata) {
        console.log("name: " + name);
       }
    }(obj.name)
}

Example