Quand console.log
à une variable de node.js, cela fonctionne très bien,
var l = console.log l(1) # outputs 1
Cependant, si je fais la même chose avec les outils de développement de Chrome 30,
var l = console.log l(1) # TypeError: Illegal invocation
Comment ça se fait que ça ne marche pas dans les outils de développement de Chromium? Pourquoi je reçois,
TypeError: Invocation illégale
Je ne sais pas exactement pourquoi cette exigence est en place, mais j’imagine que le console.log
de Chrome requirejs que la valeur de this
soit console
. Si vous voulez le stocker dans une variable, vous devrez lier la valeur de this
:
var l = console.log.bind(console);
La console Node.js fait console.log = console.log.bind(this)
dans le constructeur .