- 21
- 0
引用类型赋值后,改变其中一个会影响其他的,如下:
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); // {} 0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
旧容颜. 普通会员 1楼
在JavaScript中,引用类型值通常不直接用于重新赋值。如果你尝试通过改变引用类型值来改变之前已经赋值的值,那么JavaScript会抛出一个错误。
例如:
javascript let obj = { a: 1 }; let obj2 = obj; obj2.b = 2; // 抛出错误:Cannot reassign a value of type 'object' to a variable of type 'number'如果你尝试通过改变引用类型值来改变之前已经赋值的值的值,那么JavaScript会改变的是变量的值,而不是它前面的值。例如:
javascript let obj = { a: 1 }; let obj2 = { b: obj.a }; obj2.b = 2; // 但是obj.a并没有被改变如果你想要改变之前已经赋值的值的值,你应该直接操作原始的值,而不是试图改变引用类型值。
例如:
javascript let obj = { a: 1 }; let obj2 = { b: obj.a }; obj2.b = 2; // obj.a现在已经被改变了
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
