对于In循环,为什么不能通过obj.property访问到属性值?
For In loop, why property value can't be accessed through obj.property?
var ni = {'hello': 23, 'he':'h', hao: 45};
for( var propertyName in ni) {
console.log(ni[propertyName]) //23,'h',45
console.log(ni.propertyName) // undefined 3 times?
}
ni.propertyName 在这里不起作用的原因是什么?
ni.propertyName
等同于 ni["propertyName"]
:它获取 属性 字面上命名为 "propertyName"
的值。另一方面,ni[propertyName]
使用您的 propertyName
变量进行查找。
ni.propertyName
是引用 属性 中名为 propertyName
的静态代码(不存在)。注意这等同于 ni["propertyName"]
.
ni[propertyName]
动态索引到 ni
以查找以 值 propertyName
.[=17 命名的 属性 =]
var ni = {'hello': 23, 'he':'h', hao: 45};
for( var propertyName in ni) {
console.log(ni[propertyName]) //23,'h',45
console.log(ni.propertyName) // undefined 3 times?
}
ni.propertyName 在这里不起作用的原因是什么?
ni.propertyName
等同于 ni["propertyName"]
:它获取 属性 字面上命名为 "propertyName"
的值。另一方面,ni[propertyName]
使用您的 propertyName
变量进行查找。
ni.propertyName
是引用 属性 中名为 propertyName
的静态代码(不存在)。注意这等同于 ni["propertyName"]
.
ni[propertyName]
动态索引到 ni
以查找以 值 propertyName
.[=17 命名的 属性 =]