The keyword here is 'on' method.
source.on vs
sink.on. On is eventemitter method that listens to events emited on THAT object.
So if you emit stuff from source, attaching a listener to sink does not help. It doesn't matter what kind of object your sink is - it did not emit any radiation.
To make one object emit events and have others listen, you have two simple routes. One is to get attached to source from all your listeners, or the other is to use some kind of a bus or pubsub.
For the first version, your source would be an EventEmitter and it would emit('radiation'). And your sink can be any other object (including an event emiter), which has a listener.
Something like this:
var Sink = new (require("events").EventEmitter)() /* or whatever else */
Sink.radiationHandler = function(){
console.log('run to the hills!');
}
var sink = new Sink;
Then you attach that method as a listener to it, like this:
source.on('radiation', sink.radiationHandler);
The other method I've described is a pubsub, kind of like this: