题目描述
对象输出结果不是期望中的结果
题目来源及自己的思路
日常编程中
相关代码
var obj = {"a" : 1};
var obj1 = {"b" : obj};
console.log(obj1);
console.log(obj);
obj.a = 3;
你期待的结果是什么?实际看到的错误信息又是什么?
期待的结果:{b:{a:1}},实际输出结果如图:
对象输出结果不是期望中的结果
日常编程中
var obj = {"a" : 1};
var obj1 = {"b" : obj};
console.log(obj1);
console.log(obj);
obj.a = 3;
期待的结果:{b:{a:1}},实际输出结果如图:
13 回答13k 阅读
7 回答2.1k 阅读
3 回答1.3k 阅读✓ 已解决
6 回答1.2k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
6 回答1.1k 阅读
如果你这样输出,那么结果将会是符合预期的:
这是因为
console.log/dir/...
这类方法输出对象时会显示该对象在内存中最新的状态,所以你的输出结果中a
的值都已经被修改成最新的值(即受到obj.a = 3
的影响)。