JS对象的深拷贝
2016-02-02 16:18
731 查看
在Object的原型链上添加方法。
测试下
Object.prototype.deepCopy = function() { // var obj = Object.create(this.__proto__); var obj = {}; if (this.__proto__ && this.__proto__.deepCopy) { obj.__proto__ = this.__proto__.deepCopy(); }else { return ; } var keys = Object.keys(this); //也可用hasOwnProperty的方法获取非原型链上的方法。 var self = this; keys.forEach(function(val, index) { obj[val] = typeof self[val] === 'object' ? self[val].deepCopy() : self[val]; }); return obj; }
测试下
function Person() { this.livePlace = 'china'; } function Man() { this.sex = 'male'; } function Baby(name) { this.age = 5; this.name = name || 'larry'; } Man.prototype = new Person(); Baby.prototype = new Man(); var b1 = new Baby(); console.log(b1); console.log(b1.deepCopy());
参考文献
https://segmentfault.com/a/1190000000501320相关文章推荐
- Extjs4.0 最新最全视频教程
- Javascript中toFixed方法的改进
- 5个常见可用性错误和解决方案
- js可突破windows弹退效果代码
- JSP脚本漏洞面面观
- 使用BAT一句话命令实现快速合并JS、CSS
- js显示当前星期的起止日期的脚本
- 爆炸式的JS圆形浮动菜单特效代码
- js select常用操作控制代码
- JS实现不使用图片仿Windows右键菜单效果代码
- 从jsp发送动态图像
- 原生js结合html5制作小飞龙的简易跳球
- js 页面模块自由拖动实例
- js实现小鱼吐泡泡在页面游动特效
- js 提交和设置表单的值
- PHP VBS JS 函数 对照表
- node.js抓取并分析网页内容有无特殊内容的js文件
- PHP+JS实现大规模数据提交的方法
- 仿51JOB的地区选择效果(可选择多个地区)
- js身份证验证超强脚本