js克隆对象
来源:互联网 发布:机器人编程怎么入门 编辑:程序博客网 时间:2024/05/29 15:50
为什么要有克隆方法呢?因为JS中的对象赋值不像C,C++那样,新开辟一个空间,而是直接指向那个对象的引用,两个值会互相影响。
如下图:
克隆对象的方法
1.如果是对象,得将其属性一个一个赋值过去
clone: function(obj){ if(this.isArray(obj)){ var arr = []; for(var i = 0; i < obj.length; i++){ arr.push(this.clone(obj[i])); } return arr; } if(!this.isObject(obj)) return obj; if(obj == null) return obj; var myNewObj = new Object(); for(var i in obj){ myNewObj[i] = this.clone(obj[i]); } return myNewObj; }
2.用JSON的形式,生成JSON,复制,然后转为新的对象。
clone: function(obj){ var json = JSON.stringify(obj); var newObj = JSON.parse(json); return newObj; }
然后数组的话,还可以用数组自己的方法arr.splice(0)或arr.concat();就完成了复制。
JQuery的方法:
深复制【可以迭代】:var newJson = jQuery.extend(true,{}, json,...);
浅复制【不能迭代】:var newJson = jQuery.extend({}, json,...);
var newJson = $.map(json,function (n) { return n; });
0 0
- js对象克隆
- js对象的克隆
- JS对象之克隆
- JS克隆对象方法
- js对象深度克隆
- js 克隆对象clone
- js克隆对象
- js 对象克隆
- JS完美实现对象克隆
- js实现对象完美克隆
- js克隆对象或数组
- js对象的深度克隆!
- JS 对象克隆方法总结
- JS对象深度克隆实现
- js对象的深度克隆
- js对象克隆或复制
- JS 深复制对象 【克隆】
- js对象的深度克隆
- UBOOT TFTP下载程序配置
- UIPageControll大总结
- c#拓展方法将datatable转换成实体
- C# 通过Environment 获取 "我的文档"路径
- Scrollview 无法滑动
- js克隆对象
- 动手写“录屏软件”
- 自定义之-加载中动画
- ubuntu下eclipse找不到jre
- Validform使用教程
- 计算机术语缩写
- 软件测试工程师发展及待遇解析
- 16QAM解映射
- UIScrollView大总结