js深度复制对象
程序员文章站
2022-03-23 19:30:54
js在处理复杂数据的时候,可能会涉及到引用类型的对象或者数组的copy问题,下面是两种复制对象或数组的方法: 一、利用jquery自带的方法,调用简单方便 ......
js在处理复杂数据的时候,可能会涉及到引用类型的对象或者数组的copy问题,下面是两种复制对象或数组的方法:
一、利用jquery自带的方法,调用简单方便
// 浅层复制(只复制object根级的各个值) var newObject = jQuery.extend({}, oldObject); // 深层复制(会复制整个(包括根节点和子节点)object的值) var newObject = jQuery.extend(true, {}, oldObject);
二、可以通过js循环的方式去一层一层复制,如下
// 浅层复制(只复制object根级的各个值)
var old_obj = {a:{b:50}}; function copyBoot(obj){ var newobj = {}; for ( var attr in obj) { newobj[attr] = obj[attr]; } return newobj; } var obj2 = copyBoot(obj); obj2.a.b = 20; alert(obj.a.b);
// 深层复制(会复制整个(包括根节点和子节点)object的值)
var obj = {a:{b:50}}; function copyAll(obj){ if(typeof obj != 'object'){ return obj; } var newobj = {}; for ( var attr in obj) { newobj[attr] = copyAll(obj[attr]); } return newobj; } var obj2 = copyAll(obj); obj2.a.b = 20; alert(obj.a.b);
上一篇: 第三届中国国际物联网大会 车联网论坛
下一篇: 如何规划、建设你的数据库架构
推荐阅读
-
JavaScript 复制对象与Object.assign方法无法实现深复制
-
PHP对象的浅复制与深复制的实例详解
-
js变量定义提升、this指针指向、运算符优先级、原型、继承、全局变量污染、对象属性及原型属性优先级
-
window.top[_CACHE]实现多个jsp页面共享一个js对象
-
JS判断两个数组或对象是否相同的方法示例
-
详谈js使用in和hasOwnProperty获取对象属性的区别
-
详解js访问对象的属性和方法
-
详谈js中数组(array)和对象(object)的区别
-
原生js实现复制对象、扩展对象 类似jquery中的extend()方法教程
-
C# 快速高效率复制对象另一种方式 表达式树