js深度复制对象

2018-06-24 01:55:49来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

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);

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:vue.js数组追加合并与对象追加合并的

下一篇:angularjs+ionic的app端分页和条件