Javascript 获取已调用静态函数的类的名称

Javascript 获取已调用静态函数的类的名称,javascript,Javascript,所以我的问题如下:我能得到调用函数的类的名称吗?为了说明这个问题,我将给出一个简短的代码示例 类基{ 静态getClassName(){ //在这里获取调用方类 } } 类扩展扩展基{} Base.getClassName();//基础 Extended.getClassName();//延伸 谁能告诉我怎么做,或者说这是否可行。以下代码应该可以工作: 类基{ 静态getClassName(){ 返回此.name; } } 类扩展扩展基{} console.log(Base.getClass

所以我的问题如下:我能得到调用函数的类的名称吗?为了说明这个问题,我将给出一个简短的代码示例

类基{
静态getClassName(){
//在这里获取调用方类
}
}
类扩展扩展基{}
Base.getClassName();//基础
Extended.getClassName();//延伸

谁能告诉我怎么做,或者说这是否可行。

以下代码应该可以工作:

类基{
静态getClassName(){
返回此.name;
}
}
类扩展扩展基{}
console.log(Base.getClassName());//基础

console.log(Extended.getClassName());//扩展的
在ES6中,函数有一个只读的
名称
字段()。由于类是函数,您只需使用
MyClass.name
静态获取类名

要在运行时获取函数的类名,请参考构造函数的
Function.name

类基{
getClassName(){
返回this.constructor.name;
}
}
类扩展扩展基{}
console.log(Base.name);
console.log(扩展名);
常数基=新基();
log(base.getClassName());
常量扩展=新扩展();

log(extended.getClassName())可能重复的欢迎使用SO!对不起,这没什么意义,是吗?当您编写
Base.getClassName()
时,您已经知道它应该是
Base
,对吗?换句话说,在编写代码的那一刻,您就已经知道了类的名称,因为否则您将无法编写该行。@David您完全正确,但如果我将类名传递给函数100次(我认为可能是这样),那么将类名传递给函数就太烦人了easier@Koflin好的,我现在明白了。谢谢我只是想知道:)
Base。name
也可以,而且更简单。我宁愿使用
getClassName
作为非静态方法,在运行时获取实例的类。是的,但是如果我没有扩展的实例,this.constructor.name是否仍在工作?console.log给我“函数”的方式很奇怪