js 浅拷贝与深拷贝
2019-08-27 本文已影响0人
雨落向天行
浅拷贝:在对js数组进行操作时,我们常需要对数组进行赋值备份,但如果只是简单的把它赋值给其它变量的话,只需要随便更改一个值,其它的也会跟着改变。
var data = ['rng','skt','fake'],
ost = data;
ost[0] = 'haha';
console.log(data,ost);

解决方法一:js的slice()方法
var data = ['rng','skt','fake'],
ost = data.slice(0);
ost[0] = 'haha';
console.log(data);//console.log(['rng','skt','fake'])
console.log(ost);//console.log(['hehe','skt','fake'])
解决方法二:concat();
var data = ['rng','skt','fake'],
ost = data.concat();
ost[0] = 'haha';
console.log(data);//console.log(['rng','skt','fake'])
console.log(ost);//console.log(['hehe','skt','fake'])