将 Javascript 类重置为其默认值

Mar*_*.io 2 javascript class

很愚蠢的问题,但我早些时候随机考虑过这个问题,我从来没有试过这样做......假设我有一个这样的课程:

function Drug () {
  this.name = '';
  this.type = '';
}
Run Code Online (Sandbox Code Playgroud)

稍后在页面中,我为此药物设置了一些值:

var drug = new Drug();
drug.name = 'Testing';
drug.type = 'TestType';
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法可以让我们说将这个 Drug 实例重新启动到其默认值,不仅仅是执行以下操作:

var drug2 = new Drug();
Run Code Online (Sandbox Code Playgroud)

就像我可以在里面创建的某种重置功能Drug一样drug.reset();吗?

我试过了:this.clear = function () { return new Drug(); }但这并不能解决问题......

Mic*_*ski 5

你只是有点想多了。不是在构造函数中直接初始化这些属性,而是创建一个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: ""}
Run Code Online (Sandbox Code Playgroud)

这当然不是您处理它的唯一方法,而是第一个想到的方法。