var test = {};
test.k1 = {};
console.log(test);
test.k1.k2 = 'apple';
console.log(test);
test.k1.k2 = 'banana';
第一次记录:
对象k1:对象k2:“香蕉”
为什么?我希望空对象k1 ... banana定义为3行
第二次记录:
对象k1:对象k2:“香蕉”
为什么?我希望k2:apple ... banana在下一行定义
答案 0 :(得分:2)
您的期望是正确的,而console.log
会让您失望。在某些环境中,尤其是浏览器,console.log
日志是对象的实时引用,因此如果在分配香蕉的行之后展开它,您会看到banana而不是apple,因为它&# 39;当你展开它时,它会显示给你,而不是当你记录它时。