deep(target: any, map = new WeakMap()): any {
const isObject =
target !== null &&
(typeof target === "object" || typeof target === "function");
// 過濾不是對象的target
if (!isObject) {
return target;
} else {
let cloneTarget = new target.constructor();
if (map.get(target)) {
return map.get(target);
}
map.set(target, cloneTarget);
// Map數(shù)據(jù)
if (Object.prototype.toString.call(target) === "[object Map]") {
target.forEach((value: any, key: any) => {
cloneTarget.set(key, this.deep(value, map));
});
return cloneTarget;
}
// Set數(shù)據(jù)
else if (Object.prototype.toString.call(target) === "[object Set]") {
target.forEach((value: any) => {
cloneTarget.add(this.deep(value, map));
});
return cloneTarget;
}
// 函數(shù)
else if (Object.prototype.toString.call(target) === "[object Function]") {
console.log(target.toString);
return null;
}
// 對象杠览、數(shù)組
else {
for (let key in target) {
cloneTarget[key] = this.deep(target[key], map);
}
return cloneTarget;
}
}
}
deepClone
最后編輯于 :
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進店門醇滥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人超营,你說我怎么就攤上這事鸳玩。” “怎么了演闭?”我有些...
- 文/不壞的土叔 我叫張陵不跟,是天一觀的道長。 經(jīng)常有香客問我米碰,道長窝革,這世上最難降的妖魔是什么? 我笑而不...
- 正文 為了忘掉前任吕座,我火速辦了婚禮虐译,結果婚禮上,老公的妹妹穿的比我還像新娘米诉。我一直安慰自己菱蔬,他們只是感情好,可當我...
- 文/花漫 我一把揭開白布史侣。 她就那樣靜靜地躺著拴泌,像睡著了一般。 火紅的嫁衣襯著肌膚如雪惊橱。 梳的紋絲不亂的頭發(fā)上蚪腐,一...
- 文/蒼蘭香墨 我猛地睜開眼觅廓,長吁一口氣:“原來是場噩夢啊……” “哼鼻忠!你這毒婦竟也來了?” 一聲冷哼從身側響起杈绸,我...
- 正文 年R本政府宣布,位于F島的核電站邑跪,受9級特大地震影響次坡,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜画畅,卻給世界環(huán)境...
- 文/蒙蒙 一砸琅、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧轴踱,春花似錦症脂、人聲如沸。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至雳灵,卻和暖如春棕所,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背悯辙。 一陣腳步聲響...