js的淺克隆與深度克隆

克隆


普通克隆

//普通克隆
var origin = {
    name:"xiaoli",
    age:18,
    say:function(){
        console.log(this.name);
    }
}    
var target = {}
function clone(origin,target){
    var target = target || {};
    for(var prop in origin){
        target[prop] = origin[prop];
    }
    return target;
}
clone(origin,target);

深度克隆

/*
遍歷對(duì)象   for in
1.判斷是不是原始值  typeof() object
2.判斷時(shí)數(shù)組還是對(duì)象instanceof   toString  constructor
3.建立相應(yīng)的數(shù)組或?qū)ο?遞歸....
if(typeof(origin[prop]))
*/
var obj = {
    name: "abc",
    age: 123,
    card: ["visa", "unionpay"],
    wife: {
        name: "bcd",
        son: {
            name: "erzi"
        }
    }
}
var obj1 = {};
function deepClone(origin, target) {
    var target = target || {},
        toStr = Object.prototype.toString,
        arrStr = "[object Array]",
        objStr = "[object Object]";
    
    for (var prop in origin) {
        if (origin.hasOwnProperty(prop)) {
            if (origin[prop] !== "null" && typeof (origin[prop]) == "object") {
                //是的話代表引用值
                if (toStr.call(origin[prop] == arrStr)) {
                    target[prop] = [];
                } else {
                    target[prop] = {};
                } 
                deepClone(origin[prop],target[prop]);
            } else {
                target[prop] = origin[prop];
            }
        }
    } 
    return target; 
}
deepClone(obj, obj1);
// console.log(deepClone(obj));
console.log(obj1);
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末凰慈,一起剝皮案震驚了整個(gè)濱河市钮孵,隨后出現(xiàn)的幾起案子椒涯,更是在濱河造成了極大的恐慌,老刑警劉巖都许,帶你破解...
    沈念sama閱讀 211,265評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件渤昌,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)胳挎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)溺森,“玉大人慕爬,你說(shuō)我怎么就攤上這事∑粱” “怎么了医窿?”我有些...
    開(kāi)封第一講書人閱讀 156,852評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)炊林。 經(jīng)常有香客問(wèn)我姥卢,道長(zhǎng),這世上最難降的妖魔是什么渣聚? 我笑而不...
    開(kāi)封第一講書人閱讀 56,408評(píng)論 1 283
  • 正文 為了忘掉前任独榴,我火速辦了婚禮,結(jié)果婚禮上奕枝,老公的妹妹穿的比我還像新娘棺榔。我一直安慰自己,他們只是感情好隘道,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布症歇。 她就那樣靜靜地躺著郎笆,像睡著了一般。 火紅的嫁衣襯著肌膚如雪忘晤。 梳的紋絲不亂的頭發(fā)上宛蚓,一...
    開(kāi)封第一講書人閱讀 49,772評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音设塔,去河邊找鬼凄吏。 笑死,一個(gè)胖子當(dāng)著我的面吹牛闰蛔,可吹牛的內(nèi)容都是我干的痕钢。 我是一名探鬼主播,決...
    沈念sama閱讀 38,921評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼钞护,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼盖喷!你這毒婦竟也來(lái)了爆办?” 一聲冷哼從身側(cè)響起难咕,我...
    開(kāi)封第一講書人閱讀 37,688評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎距辆,沒(méi)想到半個(gè)月后余佃,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,130評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡跨算,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評(píng)論 2 325
  • 正文 我和宋清朗相戀三年爆土,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片诸蚕。...
    茶點(diǎn)故事閱讀 38,617評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡步势,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出背犯,到底是詐尸還是另有隱情坏瘩,我是刑警寧澤,帶...
    沈念sama閱讀 34,276評(píng)論 4 329
  • 正文 年R本政府宣布漠魏,位于F島的核電站倔矾,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏柱锹。R本人自食惡果不足惜哪自,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望禁熏。 院中可真熱鬧壤巷,春花似錦、人聲如沸瞧毙。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,740評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至撑柔,卻和暖如春瘸爽,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背铅忿。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,967評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工剪决, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人檀训。 一個(gè)月前我還...
    沈念sama閱讀 46,315評(píng)論 2 360
  • 正文 我出身青樓柑潦,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親峻凫。 傳聞我的和親對(duì)象是個(gè)殘疾皇子渗鬼,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 聽(tīng)到這個(gè)名字的時(shí)候都被嚇尿了∮恚克隆聽(tīng)起來(lái)就很屌的樣子譬胎。不過(guò)其實(shí)琢磨了一下根本沒(méi)有什么好尿的——我特別討厭一些人故作...
    蚊子爸爸閱讀 12,431評(píng)論 12 30
  • 因?yàn)榻盏捻?xiàng)目需要用到對(duì)數(shù)組做深克隆,所以做一個(gè)簡(jiǎn)要介紹與總結(jié)命锄。 一開(kāi)始聽(tīng)說(shuō)這個(gè)概念的時(shí)候嚇一跳堰乔,覺(jué)得高深莫測(cè),有...
    FJW135閱讀 681評(píng)論 0 1
  • 什么是深克隆脐恩,什么是淺克隆呢镐侯? 首先,克隆只針對(duì)對(duì)象驶冒、數(shù)組苟翻、函數(shù)等復(fù)雜數(shù)據(jù)。淺克隆就是將棧內(nèi)存中的引用復(fù)制一份骗污,賦...
    七胖子閱讀 547評(píng)論 2 1
  • 一崇猫、概念 深度克隆:深度克隆的新對(duì)象可以完全脫離原對(duì)象,我們對(duì)新對(duì)象的修改不會(huì)反映到原對(duì)象中 二身堡、知識(shí)點(diǎn)儲(chǔ)備: 1...
  • —“我老婆被抓走了邓尤,求求你救救她!” —“來(lái)把昆特牌吧贴谎」” —“這個(gè)村還沒(méi)人贏得了我!” ——《巫師3》中解決問(wèn)題...
    老張的瞎寫日常閱讀 117評(píng)論 0 0