実際の親クラスが定義されていないため、「兄弟クラスをes6で通信する」というのは、良い練習やより良いアプローチになると苦労しています。Javascript ES6クラスの構成
は私がよりよく説明しましょう:私は可能性としてカプセル化されたとして、それらを維持したいので
class Car {
constructor(typeOfMotor){
this.motor = typeOfMotor;
this.mount();
this.addListener();
}
mount() {
// Some async logic here, and this will return true or false;
}
addListener(driver) {
// Here i want to listen this.mount method and,
// when return true, then call the ride method in the driver
// If true:
driver.ride();
}
}
class Driver {
constructor(driverName) {
this.name = driverName;
}
ride(){
console.log('Highway to hell!');
}
}
class Race {
constructor() {
this.init();
}
init() {
this.car = new Car('v8');
this.driver = new Driver('michael');
}
}
var race = new Race;
race.car.addListener(race.driver);
だから、基本的に、私は、クラスを拡張する必要はありませんいくつかの環境を持っています。
私はこのトップクラスを持っています(他の人は何も継承していないので、親ではありません)。
質問は簡単ですが、要素間でこの通信を作成するにはどうすればよいでしょうか。
はそれを行うには最良の方法はありません。それを解決する方法は、実際の状況に依存します。パブリケーションサブスクリプションまたはイベントベースの接続、コールバックの使用、または関数の直接アクセスを行うことができます。またはそれらのすべての組み合わせ。 –
私にはレースには1台以上の車があり、車にはドライバーがいるようです。したがって、 'Driver'のインスタンスはおそらく' Car'に渡されるべきです。もちろん、あなたはその関係を逆転させて、「ドライバー」が「カー」をドライブすると言うこともできます。これをモデル化する方法はあなた次第です。 –
しかし、これらのネストされたクラスは悪い練習ではありませんか?私はちょうど拡張についての文書を見ているので、私の場合、彼らは他の人に継承される必要はない、ちょうど良い方法で接続されているように思えるので –