国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Javascript克隆對象

n7then / 1628人閱讀

摘要:淺克隆一使用時,它會將指針復制到它占用的內存空間。三使用是一個修改并返回目標對象的函數將里面的東西重新賦值給一個空對象深克隆僅對數字字符串和不含函數和屬性的對象有效對所有類型有效,函數和會通過引用復制輸出參考

淺克隆

一. =

    const obj = {s: 1, t: 2}
    const obj2 = obj
    console.log(obj, obj2)//{s: 1, t: 2} {s: 1, t: 2}
    
    使用 = 時,它會將指針復制到它占用的內存空間。引用類型不包含值, 
    它們是指向內存中值的指針。

二.擴展運算符

const phone = {apple: "good", huwei: "verygood"}
    const clonePone = {...phone}
    console.log(clonePone)//{apple: "good", huwei: "verygood"}
   使用它,則需要使用Babel(或類似的東西)進行編譯。

三.使用 Object.assign
<是一個修改并返回目標對象的函數>

  const eat = {apple: "green", orange: "yellow"}
    const cloneEat = Object.assign({}, eat) // 將eat里面的東西 重新賦值給一個空對象
    console.log(cloneEat)//{apple: "green", orange: "yellow"}
深克隆

1 JSON.stringify/parse: 僅對數字、字符串和不含函數和 Symble 屬性的對象有效

 const city = {
      shanghai: "sh",
      where: {
        shenzhen: "sz"
      }
    }
    const deepClone = JSON.parse(JSON.stringify(city))
    console.log(deepClone)

2 deepClone: 對所有類型有效,函數和 Symble 會通過引用復制

  var Point = function (x) {
      this.x = x
    }

    Point.prototype.y = 2

    var obj = new Point(1)

    var copy = Object.assign({ __proto__: obj.__proto__ }, obj) // 輸出{x:1,y:2}
    copy.x=5
    console.log(copy)
    console.log(Point)

參考:https://segmentfault.com/a/11...

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/106370.html

相關文章

  • 【轉】JavaScript 對象的深度克隆

    摘要:在聊以下簡稱深度克隆之前,我們先來了解一下中對象的組成??寺』蛘呖截惙譃榉N淺度克隆深度克隆。淺度克隆基本類型為值傳遞,對象仍為引用傳遞。 該文轉載自http://www.cnblogs.com/zichi/p/4568150.html,有部分修改。 在聊JavaScript(以下簡稱js)深度克隆之前,我們先來了解一下js中對象的組成。在 js 中一切實例皆是對象,具體分為 原始類型 ...

    JowayYoung 評論0 收藏0
  • JavaScript對象克隆

    摘要:原始類型對象指的是字符串數值布爾值,引用類型對象指的是數組對象函數。既然對象分為這兩類,他們的復制克隆也是有差別的??偨Y根據上面的情況,另外,克隆引用對象必須采用完整克隆深度克隆,包括對象的值也是一個對象也要進行完整克隆深度克隆。 前言 之前有人問我如何克隆一個JS對象,我當時沒答上來;過后我查資料弄懂了這個問題,現在整理成文。 正文 JavaScript的一切實例都是對象,但他們也分...

    douzifly 評論0 收藏0
  • javascript對象的常用方法,深克隆和淺克隆以及凍結,擴展,密封三大屬性的區別

    摘要:它將返回目標對象。封閉對象方法判斷一個對象是否被密封。為源對象為修改的屬性名或設置,同上方法返回一個給定對象自身可枚舉屬性的鍵值對數組方法返回指定對象上一個自有屬性對應的屬性描述符方法判斷兩個值是否是相同的值。 對象作為引用類型,工作中免不了復制對象,下面來看看克隆的方法 Object.assign() 方法用于將所有可枚舉屬性的值從一個或多個源對象復制到目標對象。它將返回目標對象。淺...

    gplane 評論0 收藏0
  • 克隆

    摘要:結構化算法優于的地方優于的地方結構化克隆可以復制對象。的克隆粒度將會跟原始對象相同,并且復制出來相同的像素數據。企圖去克隆節點同樣會拋出異常。消息通道的傳遞是異步的,使用結構化克隆算法。 JavaScript 深拷貝性能分析(漢化版) JavaScript 深拷貝性能分析 Object.assign() Object.assign 方法只會拷貝源對象自身的并且可枚舉的屬性到目標對象。...

    freecode 評論0 收藏0
  • javascript設計模式與開發實踐(二)- 封裝和原型模式

    摘要:對象會記住它的原型給對象提供了一個名為的隱藏屬性,某個對象的屬性默認會指向它的構造器的原型對象,即。我們通過代碼來驗證再來實際上,就是對象跟對象構造器的原型聯系起來的紐帶切記這句話,對未來理解原型鏈很有幫助。 封裝 封裝數據 在許多語言的對象系統中,封裝數據是由語法解析來實現的,這些語言也許提供了 private、public、protected 等關鍵字來提供不同的訪問權限。例如:j...

    luxixing 評論0 收藏0
  • JavaScript 深拷貝性能分析

    摘要:它接受任意數量的源對象,枚舉它們的所有屬性并分配給。所以現在怎么辦有幾種方法可以創建一個對象的深拷貝。為了防止發生任何意外,請使用而不是。我想測量哪種方法是最高性能的。圖表以下是,和中不同技術的性能。 原文:Deep-copying in JavaScript - DasSur.ma 如何在 JavaScript 中拷貝一個對象?對于這個很簡單的問題,但是答案卻不簡單。 引用傳值 在...

    MyFaith 評論0 收藏0

發表評論

0條評論

n7then

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<