我有这个简单的代码。
myobj.job('first', function (one, two){
console.log("First");
});
myobj.job('second', function (one, two){
console.log("Second");
});
现在的问题是:
myobj 如何根据事件(“第一个”或“第二个”)调用其中一个?
由于
答案 0 :(得分:1)
它被称为observer pattern。
以下是一个示例实现 - http://jsfiddle.net/6Jv5n/1
答案 1 :(得分:1)
您可能会在将来为事件发射器/侦听器寻找更多功能,以便您可以查看一些现成的模块:
https://github.com/hij1nx/EventEmitter2
https://github.com/Marak/hook.io
hook.io创建一个分布式node.js EventEmitter,它可以跨进程/跨平台/跨浏览器工作。
您可以通过从广泛的小型独立自主“钩子”库中挑选和选择来创建自定义i / o场景。
看看这些的源代码,它会让你知道如何很好地发挥事件。
答案 2 :(得分:0)
nodejs& EventEmitter回答: http://nodejs.org/docs/v0.4.9/api/events.html
function myobj()
{
// constructor
}
util.inherits(myobj, process.EventEmitter)
myobj.prototype.hereComesEvent1 = function()
{
// do stuff
// ..
// fire event
this.emit('first', 1, 2);
}
myobj.prototype.hereComesEvent2 = function()
{
// do stuff
// ..
// fire event
this.emit('second', 'one', 'two');
}
// test myobj
var mo = new myobj();
mo.on('first', function(a, b) {
console.log([a, b]);
});
mo.on('second', function(a, b) {
console.log([a, b]);
});
mo.hereComesEvent1();
mo.hereComesEvent2();