console.log显示的js结构体成员变量的值不正确
发布于 5 年前 作者 kliang 19041 次浏览 来自 问答
var aaaa = {
  a1: 'a1',
  a2: 'a2',
};
 
var bbbb = aaaa;
console.log("old aaaa: ", aaaa);
console.log("old bbbb: ", bbbb);
bbbb.a1 = 'a3';
console.log("new aaaa: ", aaaa);
console.log("new bbbb: ", bbbb);

old aaaa和old bbbb展开看他们的a1已经是新的值了,但是此时还没有赋值

3 回复

如果是没被销毁,仍然在内存里的对象,你点下拉的时候,会是去看的内存里的值 之后收起状态下,那一行里的内容,才是当时的

没有问题的,因为你打印的是改变之前的值,然后你后面你修改了bbbb的值,而bbbb的引用实际上是aaaa,所以当你展开old aaaa和old bbbb的时候其实是取的最新的值,没毛病,等于一个对象不会重新开辟出来一个新的内存地址来存放这个新对象

这个不是小程序,不是js的问题,这个是调试器的锅。

回到顶部