NodeJS:静态方法可以调用同一类的构造函数吗?

时间:2019-05-21 13:31:54

标签: node.js constructor static non-static

我有一个问题:如果我在一个类中有一个构造函数:

module.exports = class ClassA{
  constructor(stuffA, stuffB) {
    this.stuffA = stuffA;
    this.stuffB = stuffB;
  }

  NonStaticMethod() {
    console.log(this);
  }

  static StaticMethod(stuffA, stuffB) { 
      const element = new ClassA(stuffA, stuffB);
      console.log(element)
      element.NonStaticMethod();
    });
  }
};

因此,NonStaticMethod会为对象打印除StaticMethod以外的其他信息。有两个问题:

  1. 我可以从同一类的静态方法中调用构造函数吗?

  2. 从静态方法调用非静态方法的正确方法应该是什么?

1 个答案:

答案 0 :(得分:0)

以下代码显示为“ true”,因此在NonStaticMethod中,this.stuffA正确依赖于构造函数中定义的值:

class ClassA{
    constructor(stuffA, stuffB) {
        this.stuffA = stuffA;
        this.stuffB = stuffB;
    }

    NonStaticMethod() {
        console.log(this.stuffA === "a");
    }

    static StaticMethod(stuffA, stuffB) {
        const element = new ClassA(stuffA, stuffB);
        element.NonStaticMethod();
    };
}

ClassA.StaticMethod("a","b")