2012-09-28 67 views

回答

2

是有一個替代方案完全相同的事情?

A for ... in循環中,您在代碼塊中首先執行的操作是將foo[propertyname]複製到變量中。

+1

是的,我想只有這種解決方法,這不是真的替代「每個」的語言。所以他們不應該棄用它,對吧? – user1537366

+0

據我記得這隻適用於webkit? – Benedictus

+0

@Benedictus - 不在JavaScript 1.0中。 Netscape 2支持它! – Quentin

14

遍歷對象obj的所有屬性,你可以這樣做:如果你想避免繼承屬性

for (var key in obj) { 
    console.log(key, obj[key]); 
} 

,你可以這樣做:

for (var key in obj) { 
    if (!obj.hasOwnProperty(key)) continue; 
    console.log(key, obj[key]); 
} 
11

你可以利用的新的ECMAScript第五版功能:

Object.keys(obj).forEach(function (key) { 
    console.log(key, obj[key]); 
}); 
+3

^這是我使用'forinstatement'時如何解決eslint中的'no-restricted-syntax'錯誤。 – pherris