为什么重新赋值了a,b的属性x也被改变了
后面对a重新赋值对象,b没有变化
好像看到过相关知识,但想不起来了
var a = {"x": 1};
var b = a;
a.x = 2;
b.x;
a = {"x":3};
console.log(b.x);
我觉得这个问题不应该被关闭,我修改了表达文字,把它打开
为什么重新赋值了a,b的属性x也被改变了
后面对a重新赋值对象,b没有变化
好像看到过相关知识,但想不起来了
var a = {"x": 1};
var b = a;
a.x = 2;
b.x;
a = {"x":3};
console.log(b.x);
我觉得这个问题不应该被关闭,我修改了表达文字,把它打开
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
3 回答877 阅读✓ 已解决
3 回答1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
整个过程就像我在注释里写的那样,最后console.log(b.x)的值为2
建议题主可以翻阅一下《Javascript高级程序设计》,我之前看的是第二版,有一章讲解了引用类型和值类型,看完应该就懂了,或者参考一下网上各路大神的博客