首页 新闻 会员 周边

一段JavaScript代码求解

0
悬赏园豆:10 [已解决问题] 解决于 2013-07-26 13:29
            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());
            }
View Code

输出结果为

name:4

name:4

name:4

name:4

如何修改将其输出值为,name值,1,2,3,4

Hunt的主页 Hunt | 初学一级 | 园豆:21
提问于:2013-07-26 11:20
< >
分享
最佳答案
0

修改return 'name:' + a;
return 'name:' + this.name.name;

收获园豆:10
kylin.chen | 小虾三级 |园豆:983 | 2013-07-26 12:55

谢谢,举的例子跟我所碰到的问题有些许差别,但我已经知道如何来处理这个问题了。

Hunt | 园豆:21 (初学一级) | 2013-07-26 13:28
其他回答(1)
0

这是引用传递引起的。

修改方式1:show方法中,将return 'name:'+a; 修改为 return 'name:'+data[i].name;

修改方式2:修改为return this.name.name;

幻天芒 | 园豆:37175 (高人七级) | 2013-07-26 13:19

感谢回复

支持(0) 反对(0) Hunt | 园豆:21 (初学一级) | 2013-07-26 13:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册