【发布时间】:2015-10-28 09:53:24
【问题描述】:
用例:
我有一个基类,许多其他类都继承自该基类。
基类称为HSManagedObject。
我有另一个名为HSContext 的类,它保存HSManagedObjects 的字典,其中键是各种子类的名称,值是这些子类的实例列表。我像这样插入它们:
insertObject(object: HSManagedObject) {
this.projectObjects[object.key()].push(object)
}
因为当我缩小我的 javascript 时类名消失了(它们都变成了t),我为每个名为key 的类添加了一个静态属性,它唯一地标识了有问题的类。
当我将一个对象添加到字典中时,我想从实例中推断出该对象的类名。当我不知道它属于哪个子类时,有没有办法仅从实例中获取静态 key 变量?
目前我正在为每个名为key() 的子类添加一个实例方法,它返回类的静态key 值并调用实例方法来获取类值。看来我不应该这样做。所以在我所有的子类中,我都有一些这样的代码:
static key = "HSRule";
key() {
return HSRule.key;
}
【问题讨论】:
标签: javascript typescript metaprogramming