对于In循环,为什么无法通过obj.property访问属性值?

时间:2015-03-28 00:47:02

标签: javascript loops for-in-loop

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在这里工作的原因是什么?

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

ni.propertyName是静态代码,它引用propertyName中不存在的名为 ni 的属性。请注意,这相当于ni["propertyName"]

ni[propertyName]动态索引到ni以查找以propertyName 命名的属性。