js 中數組或者對象的深拷貝和淺拷貝


淺拷貝 : 就是兩個js 對象指向同一塊內存地址,所以當obj1 ,obj2指向obj3的時候,一旦其中一個改變,其他的便會改變!

深拷貝:就是重新復制一塊內存,這樣就不會互相影響。

有些時候我們定義一個數組,把這個數據賦值給跟多對象數組中的一個字段,當我們改變對象數組中的該字段的時候,我們會把原來的數組也改變了,這樣就會引起其他數組對象中的對應的字段改變,這不是我們想要的。

這個時候我們會用到深拷貝。

方法:

 

  

//js 深拷貝方法
var deepCopy = function(source)
{
var result;
(source instanceof Array) ? (result = []) : (result = {});

for (var key in source) {
result[key] = (typeof source[key]==='object') ? deepCopy(source[key]) : source[key];
}
return result;
}

 

賦值之前調用這個方法即可。


免責聲明!

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



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