Object.defineProperty而不更改键顺序



每当我用Object.defineProperty更改现有属性时,该属性都会位于键列表的顶部。如何避免?

Object.defineProperty(navigator, 'vendor', {
enumerable: true,
writable: false,
configurable: false,
value: 'vendor'
});
for (var el in navigator) { console.log(el);}

Javascript对象不能保证任何密钥顺序,因此它不可靠,可以在不同的浏览器中以不同的方式实现。

对此任务使用Maps,这将保留插入顺序。

const navigator = new Map();
navigator.set('vendor1', 'vendor');
navigator.set('vendor2', 'vendor');

for (var el of navigator) {
console.log(el);
}

最新更新