मैं Google ऑब्जेक्ट (जीसी) वातावरण में अपनी ऑब्जेक्ट्स के बीच संवाद करने के लिए ईवेंट का उपयोग करना चाहता हूं।Google बंद करने के साथ ईवेंट बनाना
मान लीजिए कि मेरे पास दो वर्ग foobar.Boss
और foobar.Employee
हैं। बॉस जानना चाहता है कि कर्मचारी ने कॉफी कब बनाई है, और चाहे वह कॉफी decaf है (वह इस सप्ताह कैफीन बिछा रहा है)।
जीसी ने कक्षाएं उपलब्ध कराई हैं जो ऐसा करने के साधन प्रदान करती हैं, 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 से विरासत में अजीब लगता है (क्या यह पूरी तरह जरूरी है कि कर्मचारी EventTarget का विस्तार करता है?) –