js-浅拷贝,深拷贝

来源:互联网 发布:淘宝上怎么搜sis账号 编辑:程序博客网 时间:2024/05/21 03:25

在JavaScript中,存储对象都是存储的对象的地址,浅拷贝(复制)会导致复制的多个对象指向内存同一块地址。

相当于C#中的引用类型对象。

function Person(){    this.name = name;}

var p = new Person();p.name = "123";p2.name = "test";alert(p.name);  结果是test

而深拷贝是在内存开辟一块新的地址,是连个不同的对象。

这里使用json转换来实现对象的深拷贝。

//利用json实现对象的深拷贝function deepCopy(oldValue) {    var newJson = JSON.stringify(oldValue)    return JSON.parse(newJson)}//使用原型扩展类的方法Person.prototype.Clone = function () {    var newJson = JSON.stringify(this);    return JSON.parse(newJson);}
var p = new Person();p.name = "123";var p2 = p.Clone();//var p2 = deepCopy(p);p2.name = "test";alert(p.name);  //结果是123 不影响p对象的值



0 0
原创粉丝点击