在javascript理解一行时需要帮助

时间:2014-04-04 20:39:31

标签: javascript

var stooge = {
    "first-name": "Jerome",
        "last-name": "Howard"
};
var properties = [
    'first-name',
    'middle-name',
    'last-name',
    'profession'];
for (i = 0; i < properties.length; i++) {
    console.log(properties[i] + ': ' + stooge[properties[i]]);
}

我不明白stooge[properties[i]]。为什么我们在属性之前使用括号? 有人可以解释何时使用括号?

3 个答案:

答案 0 :(得分:1)

  

我不理解stooge [properties [i]]。

这或多或少意味着它所说的。

如果i为0,则properties[i]properties[0],设置为'first-name'。

因此,stooge[properties[i]] stooge[properties[0]] stooge['first-name']first-name是“杰罗姆”。

修改

有人指出,你不能在这里使用点符号。该属性的名称为stooge.first-name。如果您键入stooge.first - name,解析器会将其解释为{{1}}。 undefined减去undefined是...... NaN!

答案 1 :(得分:0)

这只是一种从对象动态访问属性的方法。在这个原因中,因为有一个字符串数组,它允许您从对象中获取值。因为你不能做像obj。&#39; some-string&#39;

这样的事情

这可能会有助JavaScript property access: dot notation vs. brackets?

答案 2 :(得分:-1)

可以使用.访问对象属性。或者[]

但点符号在这里不起作用。

因为如果您将stooge[properties[i]]切换为stooge.properties[i],它将返回undefined,因为stooge对象没有名为properties的成员。