繁体   English   中英

我如何制作一个物体的副本? 使用Javascript

[英]How do i make a copy of an object? Javascript

我有一个json格式的类。 我想做两个例子。 现在(很明显为什么)当我'制作'两个对象时,我真的有2个vars指向一个。 (b.blah ='z'会使a.blah =='z')

我如何制作一个物体的副本?

var template = {
    blah: 0,
    init: function (storageObj) {
        blah = storageObj;
        return this; //problem here
    },
    func2: function (tagElement) {
    },
}

a = template.init($('form [name=data]').eq(0));
b = template.init($('form [name=data2]').eq(0));

如果你想要多个实例,听起来像构造函数可能会对你有所帮助。

function Template(element) {
    this.blah = element;
}

Template.prototype.func2 = function(tagElement) {
    //...
};

var a = new Template($('form [name=data]').eq(0));
var b = new Template($('form [name=data2]').eq(0));

b.func2('form');

可以从每个实例访问函数原型( Template.prototype )上的所有方法,并相应地确定每个实例的作用域。 new关键字将运行该函数,然后返回一个全新的对象,继承原型。

你将不再拥有与ab完全相同的对象点。

var b = {}, key;

for (key in a){

    if(a.hasOwnProperty(key)){
        b[key] = a[key];
    }

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM