写过vue的都知道,里面的任意赋值修改都可能会造成界面的修改
当我们不希望这种情况发生的时候我们就需要用到深拷贝
1.最简单也是最麻烦的方式
直接赋值是不可能的,使用循环for for in的方式可以实现
基础数据类型的赋值不会形成关联关系,可以达到目的
var a=[1,2,3,4,5];
var b=[];
for(let i=0,len=a.length;i<len;i++){
b[i]=a[i];
}
console.log(b);
b[0]=666;
console.log(b);
console.log(a);
2.使用JOSN对象的parse和stringify方法
var a=[1,2,3,4,5];
var b=JSON.parse(JSON.stringify(a));
console.log(b);
b[0]=666;
console.log(b);
console.log(a);
3.使用Object对象的assign方法
var a=[1,2,3,4,5];
var b=Object.assign([],a);
console.log(b);
b[0]=666;
console.log(b);
console.log(a);
网友评论