深度复制JavaScript对象
2016-02-25 15:00
459 查看
Object.prototype.deepClone = function () { if(window.JSON){ return JSON.parse(JSON.stringify(this)); }else{ function DeepClone () {}; DeepClone.prototype = this; var clone = new DeepClone(); for(var i in this){ if(this.hasOwnProperty(i)){ clone[i] = typeof this[i] === 'object' ? this[i].deepClone() : this[i]; } } return clone; } } var obja = { fn: function () { console.log(a); } }; var objb = obja.deepClone(); console.log(obja); console.log(objb); var arr1 = [{a:1},{b:2}]; var arr2 = arr1.deepClone(); arr1[0].a = 3; arr2[1].b = 4; console.log(arr1); console.log(arr2); console.log(arr1 === arr2);
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- Python动态类型的学习---引用的理解
- JavaScript演示排序算法
- javascript实现10进制转为N进制数
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- ES6 走马观花(ECMAScript2015 新特性)
- JavaScript拆分字符串时产生空字符的原因
- Canvas 在高清屏下绘制图片变模糊的解决方法
- Redux系列02:一个炒鸡简单的react+redux例子
- JavaScript 各种遍历方式详解
- call/apply/bind 的理解与实例分享
- 如何创建对象以及jQuery中创建对象的方式