Tôi muốn sử dụng các sự kiện để giao tiếp giữa các đối tượng của mình trong môi trường đóng cửa google (GC).Tạo sự kiện với google closure
Giả sử tôi có hai lớp foobar.Boss
và foobar.Employee
. Ông chủ muốn biết khi nào nhân viên đã pha cà phê, và liệu cà phê đó có phải là decaf (anh ta đang dùng cà phê trong tuần này).
GC đã cung cấp các lớp học có vẻ như cung cấp phương tiện để thực hiện việc này, goog.events.Event
và goog.events.EventTarget
.
Mà không biết tốt hơn, tôi nghĩ rằng nó sẽ làm việc như thế này:
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);
...
}
Đây có phải là một mô hình có đúng không? Tôi bị nhầm lẫn bởi lớp học goog.events.EventTarget
- sự kiện gửi đi mục tiêu như thế nào? Không phải là một mục tiêu có những điều xảy ra với nó?
This question là hữu ích, nhưng câu trả lời trực tiếp hơn sẽ được đánh giá cao.
http://code.google.com/p/closure-library/source/browse/trunk/closure/goog/fx/fx.js?r=2 # 582 Việc triển khai ví dụ - kế thừa từ goog.events.EventTarget có vẻ kỳ lạ (có cần thiết là Nhân viên mở rộng EventTarget không?) –