javascript - 将 Javascript 类重置为其默认值

标签 javascript class

非常愚蠢的问题,但我早些时候随机考虑过这个问题,但我从未尝试过这样做......假设我有一个这样的类(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: ""}

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

关于javascript - 将 Javascript 类重置为其默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14177035/

相关文章:

javascript - 检查空对象并返回 bool 值

c++ - 涉及指针和手动实现的矩阵类的问题

Python类继承问题

c++ - 构造函数中模板化类成员的继承

javascript:检查表达式是否可评估?

javascript - 如何计算多维数组中的项目总数?

javascript - 页面刷新前暂停 JavaScript

java - 将 APPLET 标签转换为 IE6 的 OBJECT 标签

excel - 在 If 语句中使用变量作为子句

swift - 为什么我可以更改/重新分配一个从类实例化的常量值