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)
问:在精神上,您如何阅读这两个陈述?
第一个(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)
| 归档时间: |
|
| 查看次数: |
199 次 |
| 最近记录: |