【发布时间】:2016-04-05 17:18:10
【问题描述】:
我只是找不到声明的 ES6 类的引用存储在哪里,我本来希望它们在窗口对象中,但它们并没有出现在那里。
我认为这不是 ES6 classes : what about instrospection? 的副本,因为他要求对某个类进行存在性检查,我想要的是可用类的列表。
例如:
class Test {
constructor() {
}
}
window.Test // undefined
我想要的是扩展我的一个类的所有类的列表
为了澄清我的结构看起来像这样:
class Base {
constructor(components) {
for(let component of components) {
window[component](); // window.Test2 not defined
}
}
start() {
new this();
}
}
class Test2 extends Base {
constructor() {
super();
}
}
class Test extends Base {
constructor() {
super(['Test2','Test2']);
}
}
Test.start();
这只是我的结构的抽象,总之我必须在super(['Test2', 'Test2'])使用字符串
目前我正在做这样的事情
Base.register(Test2);
对于每一堂课,我都想摆脱它。
【问题讨论】:
-
您不能只“获取”所有类的“列表”。你将不得不做一些可怕的事情,比如创建一个全局对象来存储它们。
-
你可以尝试从一个已知的类开始,比如 String,然后提升原型链,直到找到其他类。它们可能并不都在同一个地方,或者都继承自相同的东西。
-
“我真正想要的是扩展我的一个类的所有类的列表”这是不可能的。
标签: javascript class ecmascript-6