浅拷贝与深拷贝

来源:互联网 发布:战舰世界 知乎 编辑:程序博客网 时间:2024/06/05 22:04

1.浅拷贝

var obj1 = {    a : 10}function copy(obj){//浅拷贝    var newObj = {};    for(var attr in obj){        newObj[attr] = obj[attr];    }    return newObj;}var obj2 = copy(obj1);obj2.a = 20;alert(obj1.a);//10

2.深拷贝

var obj1 = {    a : {b : 10}}function deepCopy(obj){//深拷贝,我们使用递归的方法来实现    //终止条件,即什么时候 obj 不是对象就可以返回了    if(typeof obj != 'object'){        return obj;    }    var newObj = {};    for(var attr in obj){        newObj[attr] = deepCopy(obj[attr]);    }    return newObj;}var obj2 = deepCopy(obj1);obj2.a.b = 20;alert(obj1.a.b);//10
0 0
原创粉丝点击