我的编程空间,编程开发者的网络收藏夹
学习永远不晚

浅谈克隆 JavaScript

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

浅谈克隆 JavaScript

1、浅克隆

浅克隆无法copy数组和对象


var obj = {
    name : "abs",
    age : '18',
    sex : 'male'
}
var obj1 = {}
function clone(Origin,target) {
    target = target || {};//防止用户不输入target
    for(var k in Origin){
        target[k] = Origin[k];
    }
}
clone(obj,obj1);

2、深克隆

先判断它是什么,原始值,数组还是对象,分别处理

  • 遍历对象
  • 是原始值直接copy
  • 不是原始值判断是数组还是对象
  • 是数组建空数组
  • 是对象建空对象
  • 建立了之后再遍历一遍原始对象或数组里是啥
  • 递归

var obj = {
    name : 'lin',
    age : '18',
    sex : 'male',
    card : [1,2,3,4],
    wife : {
        name : 'bcsds',
        son : {
            name : 'aaa'
        },
        age : '23'
    }
}
var obj1 = {}
//原始值和对象数组typeof返回值有区别
function deepClone(origin,target) {
    target = target || {};
    for(var k in origin) {
        if(origin.hasOwnProperty(k)){
            if(typeof(origin[k]) == 'object') {
                if(Object.prototype.toString.call(origin[k]) == '[object Array]') {
                    target[k] = [];
                }else {
                    target[k] = {};
                }
                deepClone(origin[k],target[k]);
            }else {
                target[k] = origin[k];
            }
        }
    }
}
deepClone(obj,obj1);

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

浅谈克隆 JavaScript

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

java 对象的克隆(浅克隆和深克隆)

java 对象的克隆一、对象的浅克隆(1)需要克隆类需要重写Object类的clone方法,并且实现Cloneable接口(标识接口,无需实现任何方法) (2)当需要克隆的对象中维护着另外一个引用对象,浅克隆不会克隆另外一个引用对下,而是直
2023-05-31

浅析Java中clone()方法浅克隆与深度克隆

现在Clone已经不是一个新鲜词语了,伴随着“多莉”的产生这个词语确实很“火”过一阵子,在Java中也有这么一个概念,它可以让我们很方便的“制造”出一个对象的副本来,下面来具体看看Java中的Clone机制是如何工作的? 1.
2023-05-31

java深克隆与浅克隆有什么区别

Java中的深克隆(deep clone)和浅克隆(shallow clone)是指对象克隆时的不同方式。浅克隆是指在克隆对象时,只克隆对象本身,而不会克隆对象中的引用类型的属性。克隆后的对象与原对象共享引用类型的属性,即对其中一个对象进行
2023-08-30

Cloneable接口的作用、深克隆与浅克隆是什么

Cloneable接口的作用是在对象进行克隆操作时提供一个标识,即表明该对象是可克隆的。Cloneable接口是一个标记接口,没有定义任何方法,它仅仅是用来标识类的克隆能力。深克隆是指在克隆操作中,除了复制对象本身的所有属性外,还会递归复
2023-10-23

Cloneable接口的作用与深入理解深度克隆与浅度克隆

Cloneable接口的作用是标识一个类可以被克隆。当一个类实现了Cloneable接口,就表示该类可以创建一个与自身相同的对象。深度克隆(Deep Clone)和浅度克隆(Shallow Clone)是两种不同的克隆方式:1. 深度克隆:
2023-09-13

JavaScript对象克隆如何实现安全?(JavaScript对象克隆怎样才安全)

在JavaScript开发中,对象克隆是一个常见的操作。然而,不正确的克隆方式可能导致数据丢失、引用错误或安全漏洞。本文将介绍JavaScript对象克隆的不同方法,并探讨如何实现安全的克隆。一、浅拷贝与深拷贝在Jav
JavaScript对象克隆如何实现安全?(JavaScript对象克隆怎样才安全)
JavaScript2024-12-15

JavaScript对象克隆的重点有哪些?(JavaScript对象克隆有哪些重点)

在JavaScript开发中,对象克隆是一个重要的概念和技能。对象克隆允许我们创建一个现有对象的副本,而不是直接操作原始对象,这在许多情况下非常有用,例如数据备份、函数参数传递、避免修改原始对象等。那么,JavaScript对象克隆有哪些重点呢?一、浅拷贝
JavaScript对象克隆的重点有哪些?(JavaScript对象克隆有哪些重点)
JavaScript2024-12-14

JavaScript 对象克隆能否避免冲突?(JavaScript对象克隆能避免冲突吗)

在JavaScript开发中,对象克隆是一个常见的操作。它允许我们创建一个现有对象的副本,以便在不影响原始对象的情况下进行修改或使用。然而,对于对象克隆是否能避免冲突这个问题,存在着一些争议和需要考虑的因素。一、对象克隆的基本概念
JavaScript 对象克隆能否避免冲突?(JavaScript对象克隆能避免冲突吗)
JavaScript2024-12-17

聊一聊JQuery-深/浅克隆方法Clone()

克隆也可以理解为复制、拷贝和翻倍,就是从原型中产生出同样的复制品,它的外表及遗传基因与原型完全相同,但大多行为 思想不同。
克隆jQuery2024-11-30

JavaScript 对象克隆能否减少耗时?(JavaScript对象克隆能减少耗时吗)

在JavaScript开发中,对象克隆是一个常见的操作。它允许我们创建一个现有对象的副本,以便在不影响原始对象的情况下进行修改或使用。然而,对于对象克隆是否能够减少耗时这个问题,存在着不同的观点和实践经验。一、对象克隆的基本概念
JavaScript 对象克隆能否减少耗时?(JavaScript对象克隆能减少耗时吗)
JavaScript2024-12-19

在 JavaScript 中如何克隆对象?

我们假设一个变量 name 具有一个与之关联的原始值(number,string,boolean,undefined 和null)。如果我们将此变量 name 复制到另一个变量name2 ,则原始变量的任何修改都不会影响到第二个变量,因为它

如何在 JavaScript 中克隆数组?

JavaScript 提供了很多克隆数组的方法,其中大多数在性能和结果方面都非常相似。以下就是这些方法的简要介绍。

浅谈JavaScript原型链

这篇文章主要为大家详细介绍了JavaScript原型链,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
2023-05-17

编程热搜

目录