您现在的位置是:首页 > 网站制作 > 推荐工具推荐工具
JS种实现深拷贝的几种方法
A Xing2020-08-08【推荐工具】人已围观
简介基本数据类型:number,string,boolean,null,undefined,symbol以及未来ES10新增的BigInt(任意精度整数)七类。
引用数据类型:对象,数组,以及函数。
基本数据类型:number,string,boolean,null,undefined,symbol以及未来ES10新增的BigInt(任意精度整数)七类。
引用数据类型:对象,数组,以及函数。
基本数据类型名值存储在栈内存中;
引用数据类型名存在栈内存中,值存在于堆内存中,但是栈内存会提供一个引用的地址指向堆内存中的值。
浅拷贝则是仅复制了栈内存、都指向同一个堆地址、所以都是同一个值。列如:
深拷贝其本身就是针对于引用数据类型而言的、接下来我们来说说深拷贝的几种实现方式
1、手写递归实现深拷贝
2、JSON.parse()和JSON.stringify()利用序列化和反序列化实现
注意这种方法无法实现对象中方法的深拷贝
3、我们还可以借用JQ的extend方法。$.extend( [deep ], target, object1 [, objectN ] )
deep表示是否深拷贝,为true为深拷贝,为false,则为浅拷贝
target Object类型 目标对象,其他对象的成员属性将被附加到该对象上。
object1 objectN可选。 Object类型 第一个以及第N个被合并的对象。
4、通过Object.assign()拷贝
注意: 当对象只有一级属性为深拷贝;当对象中有多级属性时,二级属性后就是浅拷贝
数组深拷贝的几种方法
1. concat(arr1, arr2,....)
注意:当数组中的元素均为一维是深拷贝,数组中元素一维以上是值的引用
2、slice(idx1, idx2)参数可以省略
1)没有参数是拷贝数组
2)只有一个参数是从该位置起到结束拷贝数组元素
3)两个参数,拷贝从起始位置到结束位置的元素(不包含结束位置的元素:含头不含尾)
注意:当数组中的元素均为一维是深拷贝,数组中元素一维以上是值的引用
Tags:js
很赞哦! ()
随机图文
各大网站搜索引擎登录口
搜索引擎网站收录地址大全,免费收录网站搜索引擎登录口大全网页抓取工具
teleport ultra 破解版是一款实用简单的网页资源下载器,通过该软件,用户可以监控某一个网页的所有资源,并将其下载到自己的电脑上,您可以自定义下载的内容,包括图片、文字、flash动画等资源,也可以将整个网页上的内容全部一次性下载,方便你设计自己的网页作品;teleport ultra中文版提供资源搜索功能,您可以创建多个搜索项目,包括项目类型文件,背景图像,声音文件,甚至是ZIP文件或程序,都可以搜索到,其运行的速度非常快,几分钟就能扫描整个网页,需要的朋友可以下载体验!JS种实现深拷贝的几种方法
基本数据类型:number,string,boolean,null,undefined,symbol以及未来ES10新增的BigInt(任意精度整数)七类。 引用数据类型:对象,数组,以及函数。帝国CMS 弹出下载和直接下载 的修改方法!
帝国CMS可以设置弹出下载和直接下载,弹出下载有个好处可以统计下载量!直接下载不能统计下载量!