Javascript 对于In-loop,为什么属性值可以';不能通过obj.property访问?

Javascript 对于In-loop,为什么属性值可以';不能通过obj.property访问?,javascript,loops,for-in-loop,Javascript,Loops,For In Loop,ni.propertyName在这里不起作用的原因是什么?ni.propertyName相当于ni[“propertyName”]:它获取一个名为“propertyName”的属性的值ni[propertyName]使用propertyName变量进行查找。ni.propertyName相当于ni[“propertyName”]:它获取一个名为“propertyName”的属性的值ni[propertyName]使用propertyName变量进行查找。ni.propertyName是引用ni中

ni.propertyName在这里不起作用的原因是什么?

ni.propertyName
相当于
ni[“propertyName”]
:它获取一个名为
“propertyName”
的属性的值<另一方面,code>ni[propertyName]使用
propertyName
变量进行查找。

ni.propertyName
相当于
ni[“propertyName”]
:它获取一个名为
“propertyName”
的属性的值<另一方面,code>ni[propertyName]使用
propertyName
变量进行查找。

ni.propertyName
是引用
ni
中名为
propertyName
的属性(不存在)的静态代码。注意这相当于
ni[“propertyName”]


ni[propertyName]
动态索引到
ni
中,以查找使用
propertyName
值命名的属性。propertyName是引用
ni
中名为
propertyName
的属性(不存在)的静态代码。注意这相当于
ni[“propertyName”]

ni[propertyName]
动态索引到
ni
中,以查找使用
propertyName
值命名的属性

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?
}