变量输出结果很奇怪

题目描述

对象输出结果不是期望中的结果

题目来源及自己的思路

日常编程中

相关代码

        var obj = {"a" : 1};
        var obj1 = {"b" : obj};
        console.log(obj1);
        console.log(obj);
        obj.a = 3;

你期待的结果是什么?实际看到的错误信息又是什么?

期待的结果:{b:{a:1}},实际输出结果如图:图片描述

阅读 1.4k
1 个回答

如果你这样输出,那么结果将会是符合预期的:

var obj = {"a" : 1};
var obj1 = {"b" : obj};
console.log(JSON.stringify(obj1));
console.log(JSON.stringify(obj));
obj.a = 3;

这是因为 console.log/dir/... 这类方法输出对象时会显示该对象在内存中最新的状态,所以你的输出结果中 a 的值都已经被修改成最新的值(即受到 obj.a = 3 的影响)。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题