深度克隆
2017-12-20 22:53
239 查看
1.遍历对象 for(var prop in obj)
2.判断是不是原始值 typeof()
3.判断是数组还是对象 instanceof toString constructor
4.建立相应的数组或对象
5.递归
2.判断是不是原始值 typeof()
3.判断是数组还是对象 instanceof toString constructor
4.建立相应的数组或对象
5.递归
var obj = { name : "abc", age : 123, card : ['visa','master'], wife : { name : "bcd", son : { name : "aaa" } } } function deepClone(origin,target){ var target = target || {}, toStr = Object.prototype.toString, arrStr = "[object Array]"; for(var prop in origin){//遍历对象 if(origin.hasOwnProperty(prop)){//判断是不是原型链上的 if(origin[prop] !== "null" && typeof(origin[prop]) == 'object'){//判断是不是原始值 if(toStr.call(origin[prop]) == arrStr){//判断是对象还是数组 target[prop] = []; }else{ target[prop] = {}; } deepClone(origin[prop],target[prop]);//递归 }else{ target[prop] = origin[prop];//原始值 } } } return target }
相关文章推荐
- JS对象的深度克隆方法示例
- JS对象深度克隆实例分析
- 浅析Java中clone()方法浅克隆与深度克隆
- 基于序列化存取实现java对象深度克隆的方法详解
- Java 中的浅度克隆与深度克隆(测试用例)
- 深度克隆
- javascript中对象的深度克隆
- JAVA对象之克隆-原理分析
- 深度克隆与浅度克隆
- JAVA对象任意深度克隆clone工具类分享
- 如何简单地实现引用类型的深度克隆
- 浅克隆与深度克隆
- 关于Java深度克隆和浅度克隆的简单说明
- JS深度克隆代码实现
- js深度克隆和浅度克隆
- 浅谈java对象浅度克隆和深度克隆
- JS对象深度克隆实现
- JavaScript之克隆
- 对象深克隆实现
- js(八)---克隆与数组去重