js實現深拷貝的一些方法


在ECMAScript變量中包含兩種不同類型的值:基本類型值和引用類型值。

基本類型值:Undefined、Null、Boolean、Number、String

引用類型值:Object、Array、函數等

簡單點來說,聲明一個數組A、然后將其賦值給B、當修改B的值時,如果A的值沒有變化,說明它是深拷貝,如果A的值一起改變了,那它就是淺拷貝了。

 

實現數組深拷貝的一些方法:

1.使用ES6的語法

var a=[1,2,3]
var [...b]=a;//或b=[...a]
b.push(4);
console.log(b);//1,2,3,4
console.log(a)//1,2,3

 

2.使用concat()方法

var a=[1,2,3]
var c=[];
var b=c.concat(a);
b.push(4);
console.log(b);//1,2,3,4
console.log(a)//1,2,3

 

3.使用slice()方法

var a=[1,2,3]
var b=a.slice(0);
b.push(4);
console.log(b);//1,2,3,4
console.log(a)//1,2,3

 

4.使用JSON對象的stringify和parse方法

var a=[1,2,3]
var c=JSON.stringify(a);
var b=JSON.parse(c);
b.push(4);
console.log(b);//1,2,3,4
console.log(a)//1,2,3

 

參考地址:

https://www.cnblogs.com/echolun/p/7889848.html

https://www.cnblogs.com/myzy/p/8561353.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM