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);

你可能感兴趣的:(前端)