浏览http://microjs.com ,我看到许多标有“事件发射器”的库。我喜欢认为我非常了解 Javascript 语言的基础知识,但我真的不知道“事件发射器”是什么或做什么。
有大佬解惑一下吗?听起来很有趣...
最佳答案
它会触发 event任何人都可以听。不同的库针对不同的目的提供不同的实现,但基本思想是提供一个用于发布事件和订阅事件的框架。
来自 jQuery 的示例:
// Subscribe to event.
$('#foo').bind('click', function() {
alert("Click!");
});
// Emit event.
$('#foo').trigger('click');
但是,如果要使用 jQuery 发出事件,您需要有一个 DOM 对象,并且不能从任意对象发出事件。这就是事件发射器变得有用的地方。 下面是一些用于演示自定义事件的伪代码(与上面的模式完全相同):
// Create custom object which "inherits" from emitter. Keyword "extend" is just a pseudo-code.
var myCustomObject = {};
extend(myCustomObject , EventEmitter);
// Subscribe to event.
myCustomObject.on("somethingHappened", function() {
alert("something happened!");
});
// Emit event.
myCustomObject.emit("somethingHappened");
关于javascript - 什么是 "event emitter"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13438924/