我正在尝试从静态方法中检索类名称。它可以通过普通方法运行,但不能通过静态方法运行
class MyNode{
constructor(){
var classname=this.constructor.toString().split ('(' || /s+/)[0].split (' ' || /s+/)[1];
console.log(classname);
}
static a_static_method(){
var classname=this.constructor.toString().split ('(' || /s+/)[0].split (' ' || /s+/)[1];
console.log(classname);
}
}
var obj=new MyNode(); // THIS WORKS, prints "MyNode"
MyNode.a_static_method(); // THIS DOESN'T, prints "Function"
我忘了告诉我:它应该适用于MyNode的派生类。
请检查以下解决方案:
class MyNode{
constructor(){
var classname=this.constructor.toString().split ('(' || /s+/)[0].split (' ' || /s+/)[1];
console.log(classname);
}
static a_static_method(){
var classname = this.toString().split ('(' || /s+/)[0].split (' ' || /s+/)[1];
console.log(classname);
}
}
在派生类中,您将获得该类的名称,而不是 MyNode
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句