object [key]和Object.key在JavaScript中表现不同。为什么?

时间:2015-10-04 08:14:08

标签: javascript object

我有这个代码,但是当我运行它时,“typeof object [key]”显示为数字,但“typeof object.key”显示为undefined。这种奇怪行为的原因是什么?

var object = {a:3,b:4};
for (var key in object){
    console.log(typeof object[key], typeof object.key);
}

1 个答案:

答案 0 :(得分:4)

在你的循环中,变量key将评估为“a”,然后评估为“b”。

在括号表示法中,key是该局部变量的名称,并进行了评估。

因此,当您评估object[key]时,您将获得object["a"],然后object["b"]

但是,点表示法使用名称(“键”)本身,而不是key的值。所以当你写object.key时,你就会找到名为“key”的属性。而object没有,所以它是undefined