JavaScript中的含义是什么?

时间:2011-04-27 02:33:23

标签: javascript

myObj.FirstName = 'Phillip',
myObj.LastName = 'Senn';
for (var X in myObj) // FirstName LastName
for each (var X in myObj) // Phillip Senn

问:在精神上,您如何阅读这两个陈述?

4 个答案:

答案 0 :(得分:7)

第一个(for ( in ))正在从对象中读取属性名称。

因此,您可以在myObj中将其作为读取,并将其分配给x

第二个(for each ( in ))正在读取对象中属性的值。

对于myObj中每个属性的值,可以将此文件读作,并将其分配给x

请注意,for each限制了浏览器支持。

另请注意,如果额外属性出现在for ( in )中,那是因为它会查找原型链以获取额外的可枚举属性(例如,某些人可能会增加Object。) p>

你可以用......来缓解这个问题。

for (var x in myObj) {
   if ( ! myObj.hasOwnProperty(x)) {
       continue;
   }
   // Now you are sure the property is of `myObj`
}

jsFiddle

答案 1 :(得分:1)

for (var a in b)是获取给定数组a的索引b的一种方法。当我在阅读代码时对自己嘀咕时,我通常会说“为X中的每个myObj”。

如果您使用each关键字,则会在myObj中检索对象(或数组)的值。如果省略它,myObj将包含键(或数组索引)。

答案 2 :(得分:1)

for(var X in myObj)

对于myObj中的每个成员(键)

for each(var X in myObj)

对于myObj中的每个成员,获取其值

答案 3 :(得分:1)

for遍历对象属性的名称,而for each遍历属性的值。

请参阅MDN上的for each