JS三種對象深拷貝的方法
1.JSON.parse(JSON.stringify(obj));
局限性:當(dāng)值為undefined、function、symbol?會在轉(zhuǎn)換過程中被忽略。。。
2.原生js實(shí)現(xiàn):
function deepCopy(obj) {
? ? ? varresult = Array.isArray(obj) ? [] : {};
? ? ? for(varkeyin obj) {
? ? ? ? if (obj.hasOwnProperty(key)) {
? ? ? ? ? if(typeofobj[key] ==='object' && obj[key]!==null) {
? ? ? ? ? ? result[key] = deepCopy(obj[key]);? //遞歸復(fù)制
? ? ? ? ? } else {
? ? ? ? ? ? result[key] = obj[key];
? ? ? ? ? }
? ? ? ? }
? ? ? }
? ? ? return result;
? ? }
3.JQ方法:$.extend( true, target, ...sources);