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]]
。为什么我们在属性之前使用括号?
有人可以解释何时使用括号?
答案 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
的成员。