ES6 屬性順序:是否保證所有操作?
問題:
ES6引入物件的屬性順序。但是這個新功能是否能保證所有物件屬性列舉操作(例如 for-in 迴圈和 Object.keys)都有明確定義的順序?
ES2015-ES2019 的答案:
不,不適用於所有操作。
對於for-in 迴圈、Object.keys 和 JSON.stringify,ES6 不要求特定的枚舉順序。遺留相容性問題影響了這個決定。
對於 for-in 迴圈使用的 [[Enumerate]],枚舉順序未指定。 Object.keys 也繼承了這個行為。
注意: ES2020 隨後更改了此行為,甚至要求遺留操作遵循屬性順序。
其他操作和屬性順序:
雖然上述操作缺乏定義的枚舉順序,但其他操作確實遵守屬性 命令。其中包括:
Reflect. >對於這些操作,順序如下:
例外:異常對象,例如代理,可以覆寫[[OwnPropertyKeys]] 內部方法並以不同的順序傳回鍵。
以上是ES6 是否保證所有物件枚舉操作的屬性順序一致?的詳細內容。更多資訊請關注PHP中文網其他相關文章!