4 回答

TA貢獻2065條經(jīng)驗 獲得超14個贊
當(dāng)前,所有主要瀏覽器都按照定義對象的順序遍歷對象的屬性。Chrome也能做到這一點,除了幾個案例。[.]ECMAScript規(guī)范未顯式地保留此行為。在ECMA-262,第12.6.4節(jié):
列舉這些特性的機制.。是依賴于實現(xiàn)的。
然而,規(guī)范與實現(xiàn)非常不同。ECMAScript的所有現(xiàn)代實現(xiàn)都按照定義對象屬性的順序迭代對象屬性。因此,Chrome團隊認(rèn)為這是一個錯誤,并將修復(fù)它。
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條經(jīng)驗 獲得超8個贊
for .. in
枚舉屬性的機制依賴于實現(xiàn)。枚舉的順序由對象定義。
它是一個無序的屬性集合,每個屬性都包含一個原始值、對象或函數(shù)。存儲在對象屬性中的函數(shù)稱為方法。
添加回答
舉報