宣言されたES6クラスへの参照がどこに格納されているかわかりません。ウィンドウオブジェクトでそれらが期待されていましたが、そこには表示されません。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);
のようなものをやっていると私はそれを取り除きたい瞬間
。
「すべてのクラスのリストを取得する」ことはできません。すべてを格納するグローバルオブジェクトを作成するなど、何かひどいやり方をしなければならないでしょう。 – ndugger
Stringのような既知のクラスから始め、プロトタイプのチェーンを上がって他のクラスが見つかるまで試すことができます。彼らはすべて同じ場所にいるわけでもないし、すべて同じものから継承するかもしれない。 –
*「私が欲しいのは、私のクラスを拡張するすべてのクラスのリストです」*これは不可能です。 –