900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > js的深浅拷贝

js的深浅拷贝

时间:2019-03-16 01:34:16

相关推荐

js的深浅拷贝

js数据类型包括5种简单数据类型(或者基本数据类型):Undefined, Null, Number, String, Boolean, 指的是保存在栈内存中的简单数据段。还有一种复杂数据类型(引用数据类型):Object Function Array,指的是那些保存在堆内存中的对象。

深浅拷贝只是针对Object,Array这样的复杂对象。javascript存储对象都是存地址。

对象:

浅拷贝只是针对对象的各个属性进行一次复制,复制前后两个属性指向的还是同一块内存地址

深拷贝不仅对各个属性进行逐一复制,而且将各个属性包含的对象也采用深复制的方法递归到新的对象上。

var deepCopy = function (source) {

var result = {}

for (var key in source) {

result[key] = typeof source[key] === 'object' ? deepCopy(source[key]) : source[key];

}

return result;

}

如果对象层级比较多,比较大,深复制会带来性能上的问题,在遇到深复制的场景,可以考虑有没有其他替代的方案。实际的场景中,浅拷贝更为常用。

数组:

浅拷贝直接将数据复给一个变量,复制前后两个数组指向的是内存中同一块区域

深拷贝则是将数组的内容逐一拷贝过来

方法:

遍历复制

slice利用slice函数返回新数组

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。
相关阅读
js深浅拷贝

js深浅拷贝

2021-04-10

前端 js   深浅拷贝

前端 js 深浅拷贝

2022-07-18

手写深浅拷贝(js)

手写深浅拷贝(js)

2022-10-21

js中的深浅拷贝

js中的深浅拷贝

2021-01-05