イベントを使用して、Google閉鎖(GC)環境で自分のオブジェクト間で通信したいと考えています。Google閉鎖でイベントを作成する
私は2つのクラスfoobar.Boss
とfoobar.Employee
があるとします。ボスは、いつ従業員がコーヒーを作ったのか、コーヒーがデカフであるかどうかを知りたがっています(彼は今週カフェインをやっています)。
GCは、これを行う手段を提供するようなクラスを用意しています(goog.events.Event
およびgoog.events.EventTarget
)。
良く知らず、私はそれがこのように働くだろうと思うだろう:
foobar.Employee.prototype.makeCoffee = function(isDecaf)
{
this.coffeeMaker.putCoffeeInMachine(isDecaf);
this.coffeeMaker.start();
var event = new goog.event.Event('COFFEE_ON', { isDecaf: isDecaf });
goog.events.dispatchEvent(event);
}
foobar.Boss.prototype.addEmployee = function(employee)
{
...
goog.events.listen(employee, 'COFFEE_ON', function(e)
{
if (e.target.isDecaf)
{
this.refillMug();
}
}, false, this);
...
}
これが正しいパターンですか?私はクラスによって混乱していますgoog.events.EventTarget
- どのようにターゲットディスパッチイベントですか?ターゲットには何も起こりませんか?
This questionが役立ちますが、より直接的な回答は高く評価されます。
http://code.google.com/p/closure-library/source/browse/trunk/closure/goog/fx/fx.js?r=2 #582実装例 - goog.events.EventTargetから継承したものが異常です(EmployeeがEventTargetを拡張することは完全に必要ですか?) –