Perché console.log non funziona quando viene passato come parametro a forEach?

Questo è solo per curiosità, ma qualcuno di voi ha un’idea del perché questo codice non funziona?

[1, 2, 3, 4, 5].forEach(console.log); // Prints 'Uncaught TypeError: Illegal invocation' in Chrome 

D’altra parte, sembra funzionare bene:

 [1, 2, 3, 4, 5].forEach(function(n) { console.log(n) }); 

Così… ?