面試中經常被問到js中的深度轉殖, 在寫**中也會用到物件的深度轉殖這個需求.
請大家不嗇賜教.
現有乙個源物件 sourceobj 供拷貝, 如下:
const sourceobj =
, bank3:}}
, sayhi:
function
(op)
}
該函式傳入source物件, 返回乙個clone後的新物件
function
deepclone
(origin, target)
,//判斷是否為引用資料型別
tostr = object.prototype.tostring,
arrtype =
'[object array]'
;for
(let key in origin)
else;}
deepclone
(origin[key]
, tar[key]);
}else}}
return tar;
}
現在將遞迴函式進行校驗
console.
log(
"轉殖後的新物件為"
,deepclone
(sourceobj)
)deepclone
(sourceobj)
.more.bank.
sayhi2()
// "我是sayhi2函式"
[完] js 物件轉殖的三種方式
js 物件轉殖把原來物件的屬性遍歷一遍,賦給乙個新的物件 深複製物件方法 var cloneobj function obj if obj instanceof array for var key in obj return newobj 測試 var obj b 設定乙個物件 newobj clo...
js中複製乙個物件方法(轉殖物件)
js中複製乙個物件方法 轉殖物件 平時我們針對物件,還有其他基本型別常常使用複製,對於 這種物件,複製之後的只是多了乙個引用,實際上還是指向原物件。1.使用將轉化為json字串,然後再轉回去。存在的問題 似乎對於複雜的會出問題,比如物件裡面存在物件,就會出問題。2.遞迴物件來轉殖,存在的問題 如果有...
js轉殖乙個物件,支援迴圈引用的轉殖
function clonehelper function cache,item cache.push item,item utils.clone item,cache return item window.utils clone function obj,cache 支援節點轉殖,物件轉殖,同時也...