Day03 - this&Object Prototypes Ch3 Objects - Contents - Duplicating Objects

Ch3 Objects - Contents - Duplicating Objects
作者说明 Objects 的复制有分两种

  1. Deep copy
    由於我们可以在 Objects 里设定不同 type 的 value,当我们想复制一个 Objects 时,若要确保 type 为 by reference (像 function、array 等 object 的子型态) 的 value 也被完整复制(而不是只复制他们的 reference 地址)这就需要使用 Deep copy ,目前有许多可以做到 Deep copy 的作法,而没有所谓的标准的 Deep copy 方法

而如果我们确定我们的 Object 是 JSON-safe 的话,我们则可以利用 JSON.parse(JSON.stringify(myObj))做 Deep copy

var myObj = {
    a: 'ha',
    b: {
        food: 'Juice Lemon'
    },
}

var newObj = JSON.parse(JSON.stringify(myObj))

参考 djD-REK/JSON.parse() followed by JSON.stringify() as a deep copy.js 认识谁是 JSON-safe 的


  1. shallow copy
    反之,如果我们只需要复制到 reference 即可,则可以使用 ES6 的 Object.assign(),他会 return 我们需要的浅拷贝结果
var newObj = Object.assign({}, myObj)

今天的理解到这边,如果上述的观念有什麽出入的地方都希望能给予提点~感谢你 ԅ(≖‿≖ԅ)


<<:  Day03 - 复习 canvas translate 与 rotate

>>:  04 你的专研不是你的专研

Day 13 : 案例分享(4.2) 签核与费用模组 - 签核模组 Base Tier Validation

案例说明及适用场景 即然都以全WEB了,当然一定会有签核的需求 Base Tier Validati...

Wondershare Recoverit档案救援软件替代救援方案

如果家里、公司或学校电脑上的重要档案损坏或丢失,您一定会非常着急。不要担心,本文将爲您介绍一款适合任...

[DAY21]弹性讯息

Flex Messages are messages with a customizable lay...

第 5 集:CSS 社交距离(上)

此篇会介绍 Bootstrap 常用的对齐语法注意事项以及常见问题分为上下两集。上集介绍 displ...

Day-30: 设计转工程师这趟旅程,一些感言

从刚开始看程序码总觉得他们是蚯蚓, 我终於找到一件比做设计还难的事, 当然学习的过程, 没有我想像中...