4 回答
TA贡献2065条经验 获得超14个赞
当前,所有主要浏览器都按照定义对象的顺序遍历对象的属性。Chrome也能做到这一点,除了几个案例。[.]ECMAScript规范未显式地保留此行为。在ECMA-262,第12.6.4节:
列举这些特性的机制.。是依赖于实现的。
然而,规范与实现非常不同。ECMAScript的所有现代实现都按照定义对象属性的顺序迭代对象属性。因此,Chrome团队认为这是一个错误,并将修复它。
Object.keys
var obj = {
"first":"first",
"2":"2",
"34":"34",
"1":"1",
"second":"second"};for (var i in obj) { console.log(i); };// Order listed:// "1"// "2"// "34"// "first"// "second"TA贡献2039条经验 获得超8个赞
for .. in
枚举属性的机制依赖于实现。枚举的顺序由对象定义。
它是一个无序的属性集合,每个属性都包含一个原始值、对象或函数。存储在对象属性中的函数称为方法。
添加回答
举报
