迭代通过对象属性会在不同的浏览器中生成不同的结果

时间:2013-06-15 00:39:10

标签: javascript google-chrome object for-loop

我在JavaScript中创建一个非常基本的对象,并通过其属性进行循环,显示属性名称:

var name = {
                'A': 'DataA',
                'B': 'DataB',
                'C': 'DataC',
                'D': 'DataD',
                'E': 'DataE'
            }

for (var propName in name) {
    document.getElementById('result').innerHTML += propName + ' '
}

在IE和FireFox中,它会产生预期的结果:

A B C D E 

但在Chrome中,相同的代码会生成

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

知道为什么吗?关键字name在Chrome中是否具有重要意义?

2 个答案:

答案 0 :(得分:4)

当您将Chrome用作全局变量时,Chrome似乎不喜欢它(窗口对象上也有名称属性)。只需在函数内运行它。

答案 1 :(得分:-5)

尝试

for (var propName in name) {
    document.getElementById('result').innerHTML += (propName + ' ');
}