成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

js的深淺拷貝

tain335 / 817人閱讀

摘要:區(qū)別深淺拷貝主要的區(qū)別的拷貝的層級(jí)不同,淺拷貝拷貝的是一層不包括里面的引用數(shù)據(jù)類型,深拷貝的是多層實(shí)現(xiàn)方式淺拷貝完成后的對(duì)象如果還拷貝原型對(duì)象就刪了這句深深拷貝需要判斷引用數(shù)據(jù)類型,貌似還要調(diào)用遞歸的方式。

區(qū)別:
深淺拷貝主要的區(qū)別的拷貝的層級(jí)不同,淺拷貝拷貝的是一層不包括里面的引用數(shù)據(jù)類型,深拷貝的是多層

實(shí)現(xiàn)方式:淺

function shallClone (obj) {
    var obj_kkw = {}; // 拷貝完成后的對(duì)象
    for ( var i in obj) {
        if(obj.hasOwnProperty(i)) { // 如果還拷貝原型對(duì)象就刪了這句
        obj_kkw[i] = obj[i]
        }
    }
    return obj_kkw;
}

深:深拷貝需要判斷引用數(shù)據(jù)類型,貌似還要調(diào)用遞歸的方式。
function deep (ori,tar) {
    var tar = tar || {}
    var tostr = Object.prototype.toString;
    var arrstr = "[object Array]";
    
    for ( let prop in ori) {
         if(ori.hasOwnProperty(prop)) {
             if(ori[prop] !== null && typeof(ori[prop]) == "object") {
                 if(tostr.call(ori[prop]) == arrstr) {
                     tar[prop] == [];
                 } else {
                     tar[prop] == {};
                 }
                 deep (ort[prop], tar[prop]); 
             } else {
                 tar[prop] == ori[prop]
             }
         }   
     }
     return tar;
}



文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/106276.html

相關(guān)文章

  • JS專題之深淺拷貝

    摘要:在之前的文章專題之?dāng)?shù)據(jù)類型和類型檢測(cè)中我有講過,中的數(shù)據(jù)類型分為兩種,基本數(shù)據(jù)類型和引用數(shù)據(jù)類型,基本數(shù)據(jù)類型是保存在棧的數(shù)據(jù)結(jié)構(gòu)中的是按值訪問,所以不存在深淺拷貝問題。 前言 在開發(fā)過程中,偶爾會(huì)遇到這種場(chǎng)景,拿到一個(gè)數(shù)據(jù)后,你打算對(duì)它進(jìn)行處理,但是你又希望拷貝一份副本出來,方便數(shù)據(jù)對(duì)比和以后恢復(fù)數(shù)據(jù)。 那么這就涉及到了 JS 中對(duì)數(shù)據(jù)的深淺拷貝問題,所謂深淺拷貝,淺拷貝的意思就是,...

    ASCH 評(píng)論0 收藏0
  • 深入理解JS深淺拷貝

    摘要:深拷貝相比于淺拷貝速度較慢并且花銷較大。所以在賦值完成后,在棧內(nèi)存就有兩個(gè)指針指向堆內(nèi)存同一個(gè)數(shù)據(jù)。結(jié)果如下擴(kuò)展運(yùn)算符只能對(duì)一層進(jìn)行深拷貝如果拷貝的層數(shù)超過了一層的話,那么就會(huì)進(jìn)行淺拷貝那么我們可以看到和展開原算符對(duì)于深淺拷貝的結(jié)果是一樣。 JS中數(shù)據(jù)類型 基本數(shù)據(jù)類型: undefined、null、Boolean、Number、String和Symbol(ES6) 引用數(shù)據(jù)類型:...

    JackJiang 評(píng)論0 收藏0
  • 9012年,當(dāng)我們討論js深淺拷貝時(shí)我們?cè)谡f些什么?

    摘要:正文討論深淺拷貝,首先要從的基本數(shù)據(jù)類型說起根據(jù)中的變量類型傳遞方式,分為值類型和引用類型,值類型變量包括。當(dāng)你拷貝的對(duì)象有多級(jí)的時(shí)候,就是深拷貝。數(shù)據(jù)不存在則對(duì)其拷貝。 前言: 本文主要閱讀對(duì)象:對(duì)深淺拷貝印象模糊對(duì)初級(jí)前端,想對(duì)js深淺拷貝聊一聊的中級(jí)前端。 如果是對(duì)這些有完整對(duì)認(rèn)知體系和解決方法的大佬,可以選擇略過。 正文: 討論深淺拷貝,首先要從js的基本數(shù)據(jù)類型說起: 根據(jù) J...

    xeblog 評(píng)論0 收藏0
  • 深淺拷貝

    摘要:深復(fù)制實(shí)現(xiàn)代碼如下第一種方法通過遞歸解析解決第二種方法通過解析解決作者六師兄鏈接原生深拷貝的實(shí)現(xiàn)處理未輸入新對(duì)象的情況通過方法構(gòu)造新的對(duì)象 深淺拷貝針對(duì)的是 對(duì)象類型,如果是字符串的數(shù)組用[...arr],還是不會(huì)影響 要區(qū)分針對(duì)數(shù)組的深淺拷貝(默認(rèn)情況為里面沒有對(duì)象的數(shù)組),與針對(duì)對(duì)象的深淺拷貝 JavaScript數(shù)組深拷貝和淺拷貝的兩種方法 let a1 = [1, 2]; ...

    Karrdy 評(píng)論0 收藏0
  • 復(fù)習(xí)Javascript專題(四):js深淺拷貝

    摘要:基本數(shù)據(jù)類型的復(fù)制很簡(jiǎn)單,就是賦值操作,所以深淺拷貝也是針對(duì),這類引用類型數(shù)據(jù)。它會(huì)拋棄對(duì)象的。另外,查資料過程中還看到這么一個(gè)詞結(jié)構(gòu)化克隆算法還有這一篇資料也有參考,也寫得比較詳細(xì)了的深淺拷貝 基本數(shù)據(jù)類型的復(fù)制很簡(jiǎn)單,就是賦值操作,所以深淺拷貝也是針對(duì)Object,Array這類引用類型數(shù)據(jù)。 淺拷貝對(duì)于字符串來說,是值的復(fù)制,而對(duì)于對(duì)象來說則是對(duì)對(duì)象地址的復(fù)制;而深拷貝的話,它不...

    MobService 評(píng)論0 收藏0
  • 一篇文章徹底搞懂JS深淺拷貝和const

    摘要:圖數(shù)據(jù)類型圖引用類型深淺拷貝問題不知道什么是深拷貝和淺拷貝的請(qǐng)先去并在調(diào)試臺(tái)自己操作一下,這篇文章只會(huì)說明為何中會(huì)有這種問題。所以有的時(shí)候我們?yōu)榱吮苊鉁\拷貝,會(huì)用一些方式實(shí)現(xiàn)深拷貝。 首先要了解的js基礎(chǔ) 基本數(shù)據(jù)類型:Object、undefined、null、Boolean、Number、String、Symbol (ES6新加) Object包括: Array 、Date 、R...

    MyFaith 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<