首页 / JAVASCRIPT / js深拷贝实例探讨
js深拷贝实例探讨
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了js深拷贝实例探讨,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1789字,纯文字阅读大概需要3分钟。
内容图文
![js深拷贝实例探讨](/upload/InfoBanner/zyjiaocheng/295/584e278cead24b28b0ed45f942f6e8c2.jpg)
深度拷贝就是把父对象拷贝到子对象上,而且两者的内存和以后的操作都互不影响的拷贝,本文主要和大家分享js深拷贝实例探讨,希望能帮助到大家。
(1)方法1
function copy(obj1,obj2){ var obj2=obj2||{}; for(var name in obj1){ if(typeof obj1[name] === "object"){ //先判断一下obj[name]是不是一个对象 obj2[name]= (obj1[name].constructor===Array)?[]:{}; copy(obj1[name],obj2[name]); //然后来无限递归 }else{ obj2[name]=obj1[name]; //如果不是对象,直接赋值。 } } return obj2; }
使用方法:
var obj1 = { se:[{a:1,b:2},{c:3}], sa:{a:"g"}, sc:function(){console.log(1)} }var n_obj = copy(obj1,{}) console.log(n_obj)
(2)方法2
function d_clone(obj) { return Object.getPrototypeOf(Object.create(obj)); }
使用方法:
var obj1 = { se:[{a:1,b:2},{c:3}], sa:{a:"g"}, sc:function(){console.log(1)} }var n2_obj = d_clone(obj1); console.log(n2_obj)
(3)方法3
JSON.parse(JSON.stringify(obj)
说明:obj的属性中不能含有函数。
(1)方法1
function copy(obj1,obj2){ var obj2=obj2||{}; for(var name in obj1){ if(typeof obj1[name] === "object"){ //先判断一下obj[name]是不是一个对象 obj2[name]= (obj1[name].constructor===Array)?[]:{}; copy(obj1[name],obj2[name]); //然后来无限递归 }else{ obj2[name]=obj1[name]; //如果不是对象,直接赋值。 } } return obj2; }
使用方法:
var obj1 = { se:[{a:1,b:2},{c:3}], sa:{a:"g"}, sc:function(){console.log(1)} }var n_obj = copy(obj1,{}) console.log(n_obj)
(2)方法2
function d_clone(obj) { return Object.getPrototypeOf(Object.create(obj)); }
使用方法:
var obj1 = { se:[{a:1,b:2},{c:3}], sa:{a:"g"}, sc:function(){console.log(1)} }var n2_obj = d_clone(obj1); console.log(n2_obj)
(3)方法3
JSON.parse(JSON.stringify(obj)
说明:obj的属性中不能含有函数。
相关推荐:
相关推荐:
深入理解JavaScript深拷贝性能
什么是js深拷贝和浅拷贝及其实现方式
JavaScript浅拷贝与深拷贝的区别
以上就是js深拷贝实例探讨的详细内容,更多请关注Gxl网其它相关文章!
内容总结
以上是互联网集市为您收集整理的js深拷贝实例探讨全部内容,希望文章能够帮你解决js深拷贝实例探讨所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。