'this' will be bound to the EventEmitter instance. This behaviour is 
implemented around 
here: https://github.com/joyent/node/blob/master/lib/events.js#L100.

So, the following code works as expected (prints "called!").

var SomeClass = function () {
};
util.inherits(SomeClass, EventEmitter);

var instance = new SomeClass();

instance.on('message', doSomething);
instance.on('message2', console.log);

instance.emit('message');

function doSomething () {
  // this === instance
  this.emit('message2', 'called!');
}


On Wednesday, August 21, 2013 7:30:58 AM UTC+2, Mike Chen wrote:
>
> Hi,
>
> I am doing a bit of code organization, and I would like to turn the 
> following:
>
> client.on('message', function(data) {
>  // do something
>  client.emit();
> };
>
> into:
>
> client.on('message', doSomething);
>
> function doSomething(args) {
> // do something
> <this>.emit();
> }
>
> but I am not sure how to pass the client in here, I thought the "this" 
> keyword would refer to it, but apparently not? 
>
> Thanks,
> -Mike 
>

-- 
-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

--- 
You received this message because you are subscribed to the Google Groups 
"nodejs" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to