js引用类型值赋值后在重新赋值后不影响之前已经赋值的

引用类型赋值后,改变其中一个会影响其他的,如下:

var obj1 = { name: 'hello' };var obj2 = obj1;
obj2.name = 'world';console.log(obj1); // {name: "world"}console.log(obj2); // {name: "world"}

以上增删改其中一个引用类型的属性,会影响其他。
但是下面整个重新赋值(无论obj1或obj2被重新赋值为任何其他引用类型或基本类型的值)其中一个,不会影响其他怎么解释呢?

var obj1 = { name: 'hello' };var obj2 = obj1;
obj1 = {};console.log(obj1); // {}console.log(obj2); // {name: "hello"}

var obj1 = { name: 'hello' };var obj2 = obj1;
obj2 = {};console.log(obj1); // {name: "hello"}console.log(obj2); // {}


POPMUISE
浏览 2255回答 2
2回答

肥皂起泡泡

变量整体重新赋值,相当于重新开辟了一块内存。内存指针变了。和原来无关了

繁星点点滴滴

后边是直接改变了变量的指向,并没有操作引用对象。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript