var data = [{ name: '1' }, { name: '2' }, { name: '3' }, { name: '4' } ]; var options = { title: [] }; for (var i = 0; i < data.length; i++) { var a = data[i].name; options.title.push({ name: data[i], show: function() { return 'name:' + a; } }); } for(var i =0;i<options.title.length;i++) { console.log(options.title[i].show()); }
输出结果为
name:4
name:4
name:4
name:4
如何修改将其输出值为,name值,1,2,3,4
修改return 'name:' + a;
return 'name:' + this.name.name;
谢谢,举的例子跟我所碰到的问题有些许差别,但我已经知道如何来处理这个问题了。
这是引用传递引起的。
修改方式1:show方法中,将return 'name:'+a; 修改为 return 'name:'+data[i].name;
修改方式2:修改为return this.name.name;
感谢回复