在prototype.js中你可以创建类,例如像这样:
var MyClass = Class.create(
{
initialize: function (par1, par2)
{
this.data = $R(par1, par2).toArray();
}
});
并通过
实例化它们var myObj = new MyClass(1, 7000);
现在,我该如何复制这个对象?以下不起作用:
var myObj2 = MyObj.clone();
在我的特定情况下,我只需要一个浅拷贝,即实例的属性可以引用相同的对象。定义复制构造函数的某种方式肯定是最通用的选项。
这可能吗? (最好不依赖prototype.js内部)
答案 0 :(得分:2)
您可以使用Prototype's Object.extend
(或原生ES6 Object.assign
)将您的媒体资源复制到班级的新实例中:
var MyClass = Class.create({
initialize: function (par1, par2) {
this.data = $R(par1, par2).toArray();
},
clone: function() {
return Object.extend(Object.create(Object.getPrototypeOf(this)), this);
}
});