myObj.FirstName = 'Phillip',
myObj.LastName = 'Senn';
for (var X in myObj) // FirstName LastName
for each (var X in myObj) // Phillip Senn
問:精神上,你如何閱讀這兩個陳述?每個在JavaScript中的含義是什麼?
myObj.FirstName = 'Phillip',
myObj.LastName = 'Senn';
for (var X in myObj) // FirstName LastName
for each (var X in myObj) // Phillip Senn
問:精神上,你如何閱讀這兩個陳述?每個在JavaScript中的含義是什麼?
第一個(for (in)
)正在讀取對象的屬性名稱。
因此,您可以將其作爲讀取爲myObj
中的每個房產,將其分配給x
。
第二個(for each (in)
)正在讀取對象中屬性的值。
這一個可以在myObj
被理解爲每個屬性的值,將其分配給x
。
請注意,for each
瀏覽器支持有限。
另請注意,如果在for (in)
中出現額外的屬性,這是因爲它會查找額外枚舉屬性的原型鏈(例如,某人可能增加了Object
)。
你可以...
for (var x in myObj) {
if (! myObj.hasOwnProperty(x)) {
continue;
}
// Now you are sure the property is of `myObj`
}
jsFiddle緩解此。
for(var X in myObj)
對於每一個(鍵)MyObj中
for each(var X in myObj)
對於MyObj中每個成員成員,通過名稱得到其數值
for
迭代obj的屬性而for each
迭代通過屬性的值。
見for each上MDN
IE8不支持 '每個'。那麼IE9呢? – Hoque 2011-04-27 02:48:00