There are many duplicates. Long story short, console.log's implementation depends on the context method is run in. It means that this inside needs to be console object and nothing else. Hence, you should only run console.log method in context of the console object. What happens when you assign var log = console.log is that you detach function from the origin and it just looses context.
var cl = console.log.bind(console)instead.console.log's implementation depends on the context method is run in. It means thatthisinside needs to beconsoleobject and nothing else. Hence, you should only runconsole.logmethod in context of theconsoleobject. What happens when you assignvar log = console.logis that you detach function from the origin and it just looses context.this. github.com/joyent/node/blob/master/lib/console.js#L48-L53