实现对象深拷贝的简单案例
来源:互联网 发布:安能物流鲁班系统mac 编辑:程序博客网 时间:2024/06/06 02:10
代码
function deep() { var length = arguments.length; if (length <= 2) { if (length === 1) { return deep({}, arguments[0]); } else if (length === 2) { deepCopy(arguments[0],arguments[1]); } else { return {}; } } else { for (var i = 1; i < length; i++) { deepCopy(arguments[0],arguments[i]); } } return arguments[0]; function deepCopy(newObj,oldObj) { for (var i in oldObj) { if (typeof oldObj[i] === 'object') { if (oldObj[i].constructor === Array) { // 如果属性为数组的情况下 newObj[i] = []; } else if (oldObj[i] instanceof HTMLElement || oldObj[i] === window) { // 如果属性为dom对象或者window对象的情况下 newObj[i] = oldObj[i]; } else { // 如果属性为纯粹对象的情况下 if(!newObj[i] || !(newObj[i] instanceof Object)) { newObj[i] = {}; } } deepCopy(newObj[i],oldObj[i]); } else { newObj[i] = oldObj[i]; } } return newObj; } }
使用方法
- deep(a,b) 返回扩展后的a对象,a对象有b对象的所有属性值
- deep({},a,b)返回一个新对象,新对象包括a对象和b对象的所有属性值,有相同属性时b对象的会覆盖a对象,后面的对象优先级高,可以传多个对象
阅读全文
0 0
- 实现对象深拷贝的简单案例
- JavaScript对象的浅拷贝和深拷贝简单实现
- Java通过反射实现简单对象的拷贝
- .net 对象浅拷贝和深拷贝的实现
- C# List深拷贝和浅拷贝的简单案例说明
- C# 对象间的 深拷贝 实现
- js实现的对象深拷贝
- string类的简单实现(深拷贝,浅拷贝)
- ios深拷贝,浅拷贝,拷贝自定义对象的简单介绍
- ios深拷贝,浅拷贝,拷贝自定义对象的简单介绍
- ios深拷贝,浅拷贝,拷贝自定义对象的简单介绍
- ios深拷贝,浅拷贝,拷贝自定义对象的简单介绍
- ios深拷贝,浅拷贝,拷贝自定义对象的简单介绍
- ios深拷贝,浅拷贝,拷贝自定义对象的简单介绍
- 实现图片的拷贝案例演示
- 深拷贝,浅拷贝,自定义的类的对象实现拷贝
- C#中深拷贝对象的简单方法
- 对象的深拷贝
- 两个项目中的login 发送了和存储了什么
- machine learning
- 小米手机程序崩溃日志
- testng+maven+java+idea 接口测试入门四:查看测试报告并将测试结果发送邮件
- metasploit维持访问
- 实现对象深拷贝的简单案例
- 【JZOJ 5451】【NOIP2017提高A组冲刺11.4】Genocide
- 编码之json
- SpringMVC传参方式
- 八方向移动限制想法
- Linux中的hosts文件
- 倔强青铜编程日记<2>:windows visual studio 下opencv以及opencv-contrib、samples的安装
- js基本操作3
- tf.layers.conv2d和tf.nn.conv2d使用区别