返回顶部
首页 > 资讯 > 前端开发 > JavaScript >浅谈克隆 JavaScript
  • 644
分享到

浅谈克隆 JavaScript

2024-04-02 19:04:59 644人浏览 泡泡鱼
摘要

目录1、浅克隆2、深克隆1、浅克隆 浅克隆无法copy数组和对象 var obj = { name : "abs", age : '18', sex :

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);

--结束END--

本文标题: 浅谈克隆 JavaScript

本文链接: https://lsjlt.com/news/155874.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 浅谈克隆 JavaScript
    目录1、浅克隆2、深克隆1、浅克隆 浅克隆无法copy数组和对象 var obj = { name : "abs", age : '18', sex :...
    99+
    2024-04-02
  • java 对象的克隆(浅克隆和深克隆)
    java 对象的克隆一、对象的浅克隆(1)需要克隆类需要重写Object类的clone方法,并且实现Cloneable接口(标识接口,无需实现任何方法) (2)当需要克隆的对象中维护着另外一个引用对象,浅克隆不会克隆另外一个引用对下,而是直...
    99+
    2023-05-31
    java 对象 克隆
  • 浅析Java中clone()方法浅克隆与深度克隆
       现在Clone已经不是一个新鲜词语了,伴随着“多莉”的产生这个词语确实很“火”过一阵子,在Java中也有这么一个概念,它可以让我们很方便的“制造”出一个对象的副本来,下面来具体看看Java中的Clone机制是如何工...
    99+
    2023-05-31
    java clone 浅克隆
  • java深克隆与浅克隆有什么区别
    Java中的深克隆(deep clone)和浅克隆(shallow clone)是指对象克隆时的不同方式。浅克隆是指在克隆对象时,只...
    99+
    2023-08-30
    java
  • Cloneable接口的作用、深克隆与浅克隆是什么
    Cloneable接口的作用是在对象进行克隆操作时提供一个标识,即表明该对象是可克隆的。Cloneable接口是一个标记接口,没有定...
    99+
    2023-10-23
    Cloneable
  • javascript如何实现深克隆
    小编给大家分享一下javascript如何实现深克隆,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! ...
    99+
    2024-04-02
  • Cloneable接口的作用与深入理解深度克隆与浅度克隆
    Cloneable接口的作用是标识一个类可以被克隆。当一个类实现了Cloneable接口,就表示该类可以创建一个与自身相同的对象。深...
    99+
    2023-09-13
    Cloneable
  • 怎么在 JavaScript 中克隆数组
    这篇文章主要介绍“怎么在 JavaScript 中克隆数组”,在日常操作中,相信很多人在怎么在 JavaScript 中克隆数组问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
    99+
    2024-04-02
  • JavaScript数组及非数组对象的深浅克隆详解原理
    目录什么是浅克隆、深克隆1.对数组进行克隆1.1 浅克隆1.2 深克隆2.对非数组对象进行克隆2.1 浅克隆2.2 深克隆3.整合深克隆函数什么是浅克隆、深克隆 浅克隆:直接将存储在...
    99+
    2024-04-02
  • oracle的克隆
    oracle on linux安装多台服务器时可以采用一次安装副本多台克隆即可,简单快速.   ************************...
    99+
    2024-04-02
  • 克隆项目
      1.  从Git上克隆到本地    git clone 粘贴的git路径           ...
    99+
    2023-01-31
    项目
  • 浅谈JavaScript原型链
    目录instanceof 简介Function instanceof Function instanceof 运算符的定义JavaScript 原型继承机制原型与原型链原型继承Obj...
    99+
    2023-05-17
    JavaScript原型 原型链 JavaScript原型链 JavaScript原型
  • 浅谈 JavaScript 沙箱Sandbox
    前言: 说到沙箱,我们的脑海中可能会条件反射地联想到上面这个画面并瞬间变得兴致满满,不过很可惜本文并不涉及“我的世界”(老封面党了),下文将逐步介绍“浏览器世界”的沙箱。 1、什么是...
    99+
    2024-04-02
  • 浅谈JavaScript作用域
    目录一、作用域1、全局作用域2、局部作用域二、变量的作用域1、全局变量2、局部变量3、全局变量和局部变量的区别三、作用域链一、作用域 通常来说,一段程序代码中所用到的名字并不总是有效...
    99+
    2024-04-02
  • oracle数据库克隆
    oracle on linux安装多台服务器时可以采用一次安装副本多台克隆即可,简单快速. ***********************************************...
    99+
    2024-04-02
  • 阿里云ecs克隆
    什么是阿里云ECS克隆? 阿里云ECS(Elastic ComputeService)是阿里云提供的一种弹性计算服务,它可以帮助用户快速创建和管理虚拟机实例。在阿里云ECS中,克隆是指通过复制已有的实例来创建新的实例。如何进行阿里云ECS克...
    99+
    2024-01-18
    阿里 ecs
  • 浅谈JavaScript浅拷贝和深拷贝
    目录一、直接赋值二、浅拷贝三、深拷贝1. JSON对象的方式2. 递归复制网上关于这个话题,讨论有很多了,根据各路情况我自己整理了一下,最后还是能接近完美的实现深拷贝,欢迎大家讨论。...
    99+
    2024-04-02
  • 浅谈JavaScript数组简介
    目录数组简介数组字面量二维数组总结数组简介 数组(Array) - 数组也是一个对象 它和我们普通对象功能类似,也是用来储存一些值的 不同的是普通对象是使用字符串作为属性值的,而...
    99+
    2024-04-02
  • oracle virtualbox 克隆虚拟机
    复制源虚拟机的vdi文件;生成新的uuid:执行命令:vboxmanage internalcommands sethduuid /local/vm/clss.vdi  //目标文件vdi的路径(...
    99+
    2024-04-02
  • jQuery如何克隆对象
    小编给大家分享一下jQuery如何克隆对象,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!克隆对象$(document).read...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作