栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > Web开发 > JavaScript

js深拷贝函数

JavaScript 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

js深拷贝函数

在Javascript操作中,如果我们想要修改数组或者对象的值,会先将数组或对象的值进行备份,保留原来数组或对象的值不被修改,这个过程就可以使用Javascript中的深拷贝实现。Javascript中有深拷贝函数:concat函数和slice函数,本文将向大家介绍。

第一种:Javascript的concat函数

concat(arr1, arr2,....)

返回一个新的数组。该数组是通过把所有 arrayX 参数添加到 arrayObject 中生成的。如果要进行 concat() 操作的参数是数组,那么添加的是数组中的元素,而不是数组。

使用实例

var arr1 = ["1","2","3"];
var arr2 = arr1.concat();
arr2[1] = "9";
console.log("数组的原始值:" + arr1 );
console.log("数组的新值:" + arr2 );

第二种:Javascript的slice函数

 slice(index1, index2)

没有参数是拷贝数组

只有一个参数是从该位置起到结束拷贝数组元素

两个参数,拷贝从起始位置到结束位置的元素(不包含结束位置的元素:含头不含尾)

使用实例

var a = [1, 2, 3]
    b = a.slice(0)
console.log("a: ",a)
console.log("b: ",b)

b[0] = 99;
console.log("---- after changed deepClone array b ----- ")
console.log("a: ",a)
console.log("b: ",b)

concat函数和slice函数在修改数组时,不会修改原来的数组,而是返回一个新的数组。并且他们只能对Javascript数组中简单的数据类型进行深拷贝,要注意哦~更多js学习:js教程。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/14654.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号