NodeJS:静态方法可以调用相同class的构造函数吗?
NodeJS: Can a static method call the constructor of the same class?
我有一个问题:如果我在 class:
中有一个构造函数
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
。那么两个问题:
我可以从同一个 class 的静态方法调用构造函数吗?
从静态方法调用非静态方法的正确方法应该是什么?
以下代码打印 "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")
我有一个问题:如果我在 class:
中有一个构造函数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
。那么两个问题:
我可以从同一个 class 的静态方法调用构造函数吗?
从静态方法调用非静态方法的正确方法应该是什么?
以下代码打印 "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")