摘要:區(qū)別深淺拷貝主要的區(qū)別的拷貝的層級不同,淺拷貝拷貝的是一層不包括里面的引用數(shù)據(jù)類型,深拷貝的是多層實現(xiàn)方式淺拷貝完成后的對象如果還拷貝原型對象就刪了這句深深拷貝需要判斷引用數(shù)據(jù)類型,貌似還要調(diào)用遞歸的方式。
區(qū)別:
深淺拷貝主要的區(qū)別的拷貝的層級不同,淺拷貝拷貝的是一層不包括里面的引用數(shù)據(jù)類型,深拷貝的是多層
實現(xiàn)方式:淺
function shallClone (obj) { var obj_kkw = {}; // 拷貝完成后的對象 for ( var i in obj) { if(obj.hasOwnProperty(i)) { // 如果還拷貝原型對象就刪了這句 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)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/106276.html
摘要:在之前的文章專題之?dāng)?shù)據(jù)類型和類型檢測中我有講過,中的數(shù)據(jù)類型分為兩種,基本數(shù)據(jù)類型和引用數(shù)據(jù)類型,基本數(shù)據(jù)類型是保存在棧的數(shù)據(jù)結(jié)構(gòu)中的是按值訪問,所以不存在深淺拷貝問題。 前言 在開發(fā)過程中,偶爾會遇到這種場景,拿到一個數(shù)據(jù)后,你打算對它進行處理,但是你又希望拷貝一份副本出來,方便數(shù)據(jù)對比和以后恢復(fù)數(shù)據(jù)。 那么這就涉及到了 JS 中對數(shù)據(jù)的深淺拷貝問題,所謂深淺拷貝,淺拷貝的意思就是,...
摘要:深拷貝相比于淺拷貝速度較慢并且花銷較大。所以在賦值完成后,在棧內(nèi)存就有兩個指針指向堆內(nèi)存同一個數(shù)據(jù)。結(jié)果如下擴展運算符只能對一層進行深拷貝如果拷貝的層數(shù)超過了一層的話,那么就會進行淺拷貝那么我們可以看到和展開原算符對于深淺拷貝的結(jié)果是一樣。 JS中數(shù)據(jù)類型 基本數(shù)據(jù)類型: undefined、null、Boolean、Number、String和Symbol(ES6) 引用數(shù)據(jù)類型:...
摘要:正文討論深淺拷貝,首先要從的基本數(shù)據(jù)類型說起根據(jù)中的變量類型傳遞方式,分為值類型和引用類型,值類型變量包括。當(dāng)你拷貝的對象有多級的時候,就是深拷貝。數(shù)據(jù)不存在則對其拷貝。 前言: 本文主要閱讀對象:對深淺拷貝印象模糊對初級前端,想對js深淺拷貝聊一聊的中級前端。 如果是對這些有完整對認知體系和解決方法的大佬,可以選擇略過。 正文: 討論深淺拷貝,首先要從js的基本數(shù)據(jù)類型說起: 根據(jù) J...
摘要:基本數(shù)據(jù)類型的復(fù)制很簡單,就是賦值操作,所以深淺拷貝也是針對,這類引用類型數(shù)據(jù)。它會拋棄對象的。另外,查資料過程中還看到這么一個詞結(jié)構(gòu)化克隆算法還有這一篇資料也有參考,也寫得比較詳細了的深淺拷貝 基本數(shù)據(jù)類型的復(fù)制很簡單,就是賦值操作,所以深淺拷貝也是針對Object,Array這類引用類型數(shù)據(jù)。 淺拷貝對于字符串來說,是值的復(fù)制,而對于對象來說則是對對象地址的復(fù)制;而深拷貝的話,它不...
摘要:圖數(shù)據(jù)類型圖引用類型深淺拷貝問題不知道什么是深拷貝和淺拷貝的請先去并在調(diào)試臺自己操作一下,這篇文章只會說明為何中會有這種問題。所以有的時候我們?yōu)榱吮苊鉁\拷貝,會用一些方式實現(xiàn)深拷貝。 首先要了解的js基礎(chǔ) 基本數(shù)據(jù)類型:Object、undefined、null、Boolean、Number、String、Symbol (ES6新加) Object包括: Array 、Date 、R...
閱讀 3685·2021-10-11 11:09
閱讀 1349·2021-09-24 10:35
閱讀 3441·2021-07-29 13:48
閱讀 473·2019-08-30 13:15
閱讀 2526·2019-08-30 12:53
閱讀 3221·2019-08-30 12:44
閱讀 2718·2019-08-29 16:57
閱讀 968·2019-08-29 12:26