这是一个很愚蠢的问题,但是我早些时候就在随机考虑,而我从未尝试过这样做……让我们说我有一个像这样的类(class):
function Drug () {
this.name = '';
this.type = '';
}
在页面的后面,我为此毒品设置了一些值:
var drug = new Drug();
drug.name = 'Testing';
drug.type = 'TestType';
是否有一种简单的方法可以让我们将此Drug实例重新启动为其默认值,而无需执行以下操作:
var drug2 = new Drug();
像某种 reset 函数一样,我可以在
Drug
内部创建仅做drug.reset();
吗?我试过了:
this.clear = function () { return new Drug(); }
,但是没有成功... 最佳答案
您只是略微考虑了一下。与其直接在构造函数中初始化这些属性,不如创建一个init()
方法来初始化它们,由构造函数调用。然后,您可以调用它来重新初始化对象的属性。
function Drug () {
this.init();
}
Drug.prototype.init = function() {
this.name = '';
this.type = '';
}
// Instantiate:
var d = new Drug();
d.name = 'Testing';
console.log(d);
// Drug {name: "Testing", type: ""}
// Re-initialize it
d.init();
console.log(d);
// Drug {name: "", type: ""}
当然,这不是您处理它的唯一方法,而是想到的第一个方法。