如下:
var obj = {
a: [1]
}
console.log(obj);
obj.a = [2];
结果:
但如果a属性的值是一个基本类型:
var obj = {
a: 1
}
console.log(obj);
obj.a = 2;
为什么有这种区别呢,求解
如下:
var obj = {
a: [1]
}
console.log(obj);
obj.a = [2];
结果:
但如果a属性的值是一个基本类型:
var obj = {
a: 1
}
console.log(obj);
obj.a = 2;
为什么有这种区别呢,求解
因为下边的你并没展开呀……没展开当然就只是console当时的快照咯。
而且,你要明白你用的功能是log日志呀,那是文本字符串,虽然浏览器能做到一部分动态,但那毕竟主要还是静态的对不?要看动态的还是找debug吧……
13 回答13.1k 阅读
7 回答2.3k 阅读
3 回答1.4k 阅读✓ 已解决
6 回答1.5k 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
3 回答1.5k 阅读✓ 已解决
6 回答1.2k 阅读
这是因为 console.log/dir/... 这类方法输出对象时会显示该对象在内存中最新的状态;内存的地址上是原始值是不能被修改,所以对象的话输出结果中 a 的值都已经被修改成最新的值