亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長資訊網(wǎng)
    最全最豐富的資訊網(wǎng)站

    javascript怎么實(shí)現(xiàn)深克隆

    javascript實(shí)現(xiàn)深克隆的方法:1、利用“…”延展操作符,可以深克隆一層,但是第二層引用仍然指向原來的位置;2、利用JSON,可以實(shí)現(xiàn)多層的深克隆,但是無法復(fù)制function,無法適用全部場(chǎng)景;3、利用遞歸和循環(huán)挨個(gè)創(chuàng)建參數(shù)和賦值。

    javascript怎么實(shí)現(xiàn)深克隆

    本教程操作環(huán)境:windows10系統(tǒng)、javascript1.8.5版、Dell G3電腦。

    javascript怎么實(shí)現(xiàn)深克隆

    由于Object類型與Array類型是引用類型,而引用類型在變量間的相互賦值是將指向內(nèi)存的指針賦予過去,這樣就會(huì)導(dǎo)致,當(dāng)改變b的數(shù)據(jù)會(huì)將a的數(shù)據(jù)一同改變。

    javascript怎么實(shí)現(xiàn)深克隆
    而在實(shí)際的開發(fā)過程中,有很多時(shí)候需要將兩個(gè)變量間的關(guān)聯(lián)斷開,所以需要用到深克隆斷開這個(gè)聯(lián)系。

    1、使用延展操作符(…)實(shí)現(xiàn)深克隆

    這種方式是最簡單且便捷的一種方式,但是只能深克隆一層,第二層的引用依然指向原來的位置。

    javascript怎么實(shí)現(xiàn)深克隆

    2、使用JSON實(shí)現(xiàn)深克隆

    這種方式也比較簡便,并且可以實(shí)現(xiàn)多層的深克隆,但是無法復(fù)制function,無法適用全部場(chǎng)景。

    javascript怎么實(shí)現(xiàn)深克隆
    3、使用遞歸和循環(huán)挨個(gè)創(chuàng)建參數(shù)和賦值

    能夠完全復(fù)制一個(gè)對(duì)象

    // 深克隆function deepCopy(value) { 	if(value instanceof Function)return value    else if (value instanceof Array) {         var newValue = []         for (let i = 0; i < value.length; ++i) newValue[i] = deepCopy(value[i])         return newValue    } else if (value instanceof Object) {         var newValue = {}         for (let i in value) newValue[i] = deepCopy(value[i])         return newValue    } else return value}

    javascript怎么實(shí)現(xiàn)深克隆

    贊(0)
    分享到: 更多 (0)
    網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)