数组和对象深复制的几种方法

原创 小枝节KKW 随笔 JS 217阅读 2017-11-13 17:28:00 举报

1.数组的深复制

(1) 递归
javascript 代码

(2) slice()方法
javascript 代码

(3) concat()方法
javascript 代码

(4) JSON
javascript 代码

(5) ES6的扩展运算符(...)
javascript 代码

2.对象的深复制

(1) 递归
javascript 代码

(2) JSON
javascript 代码

(3) ES6的Object,assign()方法
javascript 代码

此方法具有局限性:只能处理深度只有一层的对象,多层的话不起作用,慎用!!!
javascript 代码

3.两者通用

(1) JSON
javascript 代码

局限性:
只有可以转成JSON格式的对象才可以这样用,比如(Number, String, Boolean, Array);RegExp、Function不能转换为JSON格式,不能使用这种方式;
深复制之后,会抛弃对象原有的constructor,即不管这个对象原来的构造函数是什么,在深拷贝之后都会变成Object
(2) 递归
javascript 代码

评论 ( 1 )
最新评论
心理学徒幽灵聪 2017-11-13 20:02:30 1F

厉害厉害,原来只知道递归,slice和concat,Json这个学到了