JavaScript中的含义是什么?

Phi*_*enn 6 javascript

myObj.FirstName = 'Phillip',
myObj.LastName = 'Senn';
for (var X in myObj) // FirstName LastName
for each (var X in myObj) // Phillip Senn
Run Code Online (Sandbox Code Playgroud)

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

ale*_*lex 7

第一个(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`
}
Run Code Online (Sandbox Code Playgroud)

jsFiddle.