如何相应地重新定义 JavaScript 对象


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:苹果...下一行定义香蕉

你的期望是正确的,是console.log抛弃了你。在某些环境中,尤其是浏览器,console.log记录的是对对象的实时引用,因此,如果您在分配 banana 的行之后展开它,您会看到 banana 而不是 apple,因为它在您展开它时向您显示它,而不是您记录它时。

相关内容

  • 没有找到相关文章

最新更新