DRY up - 如果不存在实例则调用类方法,否则调用实例方法

时间:2017-11-04 22:35:28

标签: javascript class instance dry

场合

如果输入是“开始”,则自动计算“结束”,然后使用“结束”预填充页面

如果输入是“结束”,只需用它预填充页面

我正在尝试编写一个类来处理这个功能。

class EndVal(start_value) {
  constructor() {
    this.end_value = start_value + 10
    $("#end").text(this.end_value)
  }

  static prefill(end_value) {
    $("#end").text(end_value)
  }
}

根据上面的代码,如果您拥有的是“开始”,那么您只需执行new EndVal(start_value),但如果您已经有了“结束”而不是实例化新对象,那么您可以{ {1}}。但它不是很干......我想知道如何解决它,并以某种方式链接实例和类方法?

1 个答案:

答案 0 :(得分:0)

prefill方法应使用传递的参数而不是this。现在您可以使用构造函数中的所有方法:



class EndVal {
  constructor(start_value) {
    this.end_value = start_value + 10
    this.constructor.prefill(this.end_value);
  }

  static prefill(end_value) {
    console.log(end_value);
  }
}

const endVal = new EndVal(15);

EndVal.prefill(28);