You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在静态父类Model中获取子类User的类名?

在父类静态方法中获取子类类名的解决方案

基础实现方案

在JavaScript的静态方法中,this指向调用该方法的子类构造函数,因此可以直接通过this.name获取子类的类名:

class Model {
  static getName(){
    return this.name;
  }
}

class User extends Model {
}

// 调用后输出 "User"
console.log(User.getName());

代码压缩场景的兼容方案

如果代码会经过压缩混淆(比如生产环境构建),类的name属性可能会被修改为无意义的字符串,此时可以手动给子类添加静态属性来存储固定类名:

class Model {
  static getName(){
    // 优先使用自定义的displayName,兜底使用类的name属性
    return this.displayName || this.name;
  }
}

class User extends Model {
  static displayName = "User";
}

// 即使类名被压缩,依然输出 "User"
console.log(User.getName());

内容的提问来源于stack exchange,提问作者Luca

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 02:57:33