私は他のメソッドを呼び出すメソッドを持つクラスを持っている:ES6:クラスにメソッドがある場合?
class MyClass {
build(methods) {
methods.forEach((method) => {
if (this.method) {
this.method();
}
});
}
stuff() {}
moreStuff() {}
}
const a = MyClass();
a.build(['stuff', 'moreStuff']);
私はクラスのための特別な方法上の任意の参照を見つけることができませんでした。私の最初の考えはhasOwnProperty
でした(ただし、クラス内で使用しないでください)。上記のアプローチは、クラスに組み込み関数があるため、確実に動作しません。
私はまた私の救いであるとして、おそらくReflectを見ていたが、私は本当にこのシナリオのためのベストプラクティスであるかについて、いくつかのガイダンスを使用することができますか?
が私たちを表示する 'build'、してください – Bergi
「*クラスのための特別な方法には言及*」 - クラスは何も特別ではない、との特別な方法を必要としないので、それはです。それらは常に '.prototype'オブジェクトを持つコンストラクタ関数です(プロトタイプのメソッドは列挙できません)。 – Bergi
@Bergi私は理解しています、彼らは構文的な砂糖ですが、私は本当に彼らがいくつかのクールなイントロスペクション方法を持っていることを望んでいました。コードを更新しました。私はリファクタリングし、 'build'メソッドを関数に分けて、ある種の' Reflect'を使うべきだと思います。 –