js对象浅拷贝与深拷贝

时间:2023-01-24 19:49:19

先看一下浅拷贝的例子

var Page = {"pageNo":0,"pageSize":20};

var page = Page;

page.pageNo =5;

debbuger;


跟踪断点处,page对象中的pageNo与Page对象的pageNo均为5,这不是我想要的。我的目的是想复制出来一个不同的js对象。由是加以改动


....

var page = copy(Page)

..

function copy(obj){
    var v = new Object;
    for (o in obj){
        v[o] = obj[o];
    }
    return v;
}


这样就实现了一个简单的深拷贝,修改page的属性时,不会影响到Page的改叫属性。