0
var test = {};
test.k1 = {};
console.log(test);
test.k1.k2 = 'apple';
console.log(test);
test.k1.k2 = 'banana';

第一个日志:
对象 k1:对象 k2:“香蕉”
为什么?我希望空对象 k1...香蕉在 3 行之后定义

第二个日志:
对象 k1:对象 k2:“香蕉”
为什么?我希望 k2: apple...banana 在下一行定义

4

1 回答 1

2

你的期望是正确的,它是console.log扔给你的。在某些环境中,尤其是浏览器中,console.log日志是对对象的实时引用,因此如果在分配香蕉的行之后展开它,您会看到香蕉而不是苹果,因为它向您显示它就像您展开它时一样,而不是当您登录时。

于 2016-04-01T07:59:12.747 回答