JavaScript 对象或数组赋值不改变原对象或数组

 

JavaScript 中对象或数组的赋值是默认引用赋值的,使得改变对象时,原对象跟着改变,

如果你想要复制赋值,则必须要重新分配对象,使用如下代码即可避免此问题:

1、对象 Object.assign({}, object)

let a = {'name': 'lily'};

var b = Object.assign({}, a);

b.name = 'lisa';

console.log(a.name);

 

a.name 的值不再发生变化

 

2、数组 array.slice()

var a = ['qqq','www','eee'];

var b = a.slice();

b.push('rrr');

console.log(a);

 

 

3、使用...赋值新变量,对象和数组都可用

let a = {'name': 'lily'};

var b = {...a};

b.name = 'lisa';

console.log(a,b);

var aa = ['qqq','www','eee'];

var bb = [...aa];

bb.push('rrr');

console.log(aa,bb);

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值