/ / Node kontra Chrome, przypisując plik console.log do zmiennej? - node.js, google-chrome, v8, chromium, console.log

Węzeł a Chrome, przypisując plik console.log do zmiennej? - node.js, google-chrome, v8, chromium, console.log

Kiedy przydzielam console.log do zmiennej w węźle node.js działa poprawnie,

var l = console.log
l(1) # outputs 1

Jeśli jednak zrobię to samo w narzędziach programisty Chromium 30,

var l = console.log
l(1) # TypeError: Illegal invocation

Dlaczego to nie działa w narzędziach programistycznych Chromium? Dlaczego otrzymuję,

TypeError: Nielegalne wywołanie

Odpowiedzi:

6 dla odpowiedzi № 1

Dokładnie czemu ten wymóg jest na miejscu, nie wiem, ale myślę, że Chrome console.log wymaga wartości this być console. Jeśli chcesz zapisać go w zmiennej, musisz powiązać wartość this:

var l = console.log.bind(console);

4 dla odpowiedzi nr 2

Robi to konsola Node.js console.log = console.log.bind(this) w konstruktorze.