eventEmitter.emit() 方法可以传任意数量的参数到监听器函数。 当监听器函数被调用时,this 关键词会被指向监听器所绑定的 EventEmitter 实例。

    1. const myEmitter = new MyEmitter();
    2. myEmitter.on('event', function(a, b) {
    3. console.log(a, b, this, this === myEmitter);
    4. // 打印:
    5. // a b MyEmitter {
    6. // domain: null,
    7. // _events: { event: [Function] },
    8. // _eventsCount: 1,
    9. // _maxListeners: undefined } true
    10. });
    11. myEmitter.emit('event', 'a', 'b');

    也可以使用 ES6 的箭头函数作为监听器。但 this 关键词不会指向 EventEmitter 实例:

    1. const myEmitter = new MyEmitter();
    2. myEmitter.on('event', (a, b) => {
    3. console.log(a, b, this);
    4. // 打印: a b {}
    5. });
    6. myEmitter.emit('event', 'a', 'b');