js 中常見的深拷貝的方法


建議最簡單的第一種

1、通過 JSON 對象實現深拷貝

this.data = JSON.parse(JSON.stringify(this.vm.$store.state.security.menuArr))
2、通過jQuery的extend方法實現深拷貝
var array = [1,2,3,4]; var newArray = $.extend(true,[],array);

3、使用遞歸的方式實現深拷貝

//使用遞歸的方式實現數組、對象的深拷貝
function deepClone1(obj) {
//判斷拷貝的要進行深拷貝的是數組還是對象,是數組的話進行數組拷貝,對象的話進行對象拷貝
var objClone = Array.isArray(obj) ? [] : {};
//進行深拷貝的不能為空,並且是對象或者是
if (obj && typeof obj === "object") {
for (key in obj) {
if (obj.hasOwnProperty(key)) {
if (obj[key] && typeof obj[key] === "object") {
objClone[key] = deepClone1(obj[key]);
} else {
objClone[key] = obj[key];
}
}
}
}
return objClone;
}

4、Object.assign()拷貝
當對象中只有一級屬性,沒有二級屬性的時候,此方法為深拷貝,但是對象中有對象的時候,此方法,在二級屬性以后就是淺拷貝。
1
5、lodash函數庫實現深拷貝
lodash很熱門的函數庫,提供了 lodash.cloneDeep()實現深拷貝
---------------------
中島美嘉


免責聲明!

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



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