Reputation: 87
Looking at the console
object in the Node.js repl, I see it has a context
function:
> console
Console {
log: [Function: bound consoleCall],
debug: [Function: bound consoleCall],
info: [Function: bound consoleCall],
warn: [Function: bound consoleCall],
error: [Function: bound consoleCall],
dir: [Function: bound consoleCall],
time: [Function: bound consoleCall],
timeEnd: [Function: bound consoleCall],
trace: [Function: bound consoleCall],
assert: [Function: bound consoleCall],
clear: [Function: bound consoleCall],
count: [Function: bound consoleCall],
countReset: [Function: bound countReset],
group: [Function: bound consoleCall],
groupCollapsed: [Function: bound consoleCall],
groupEnd: [Function: bound consoleCall],
Console: [Function: Console],
dirxml: [Function: dirxml],
table: [Function: table],
markTimeline: [Function: markTimeline],
profile: [Function: profile],
profileEnd: [Function: profileEnd],
timeline: [Function: timeline],
timelineEnd: [Function: timelineEnd],
timeStamp: [Function: timeStamp],
context: [Function: context],
[Symbol(counts)]: Map {} }
This function, when called, seems to return an object similar to console
but missing a few things:
> console.context()
{ debug: [Function: debug],
error: [Function: error],
info: [Function: info],
log: [Function: log],
warn: [Function: warn],
dir: [Function: dir],
dirXml: [Function: dirXml],
table: [Function: table],
trace: [Function: trace],
group: [Function: group],
groupCollapsed: [Function: groupCollapsed],
groupEnd: [Function: groupEnd],
clear: [Function: clear],
count: [Function: count],
assert: [Function: assert],
markTimeline: [Function: markTimeline],
profile: [Function: profile],
profileEnd: [Function: profileEnd],
timeline: [Function: timeline],
timelineEnd: [Function: timelineEnd],
time: [Function: time],
timeEnd: [Function: timeEnd],
timeStamp: [Function: timeStamp] }
> console.context() === console
false
Although it looks similar, it does not have the same functionality:
> console.context().log('hello world')
undefined
These items are in console
but not in console.context()
:
Console: [Function: Console],
[Symbol(counts)]: Map {}
context: [Function: context],
countReset: [Function: bound countReset],
The constructor Console
and countReset
are documented at
https://nodejs.org/api/console.html
The [Symbol(counts)]
object might have something to do with the
implementation of count
and countReset
.
But context
seems like it should be documented, and is not. What is
it?
Upvotes: 3
Views: 1360
Reputation: 222474
console.context
is experimental Chrome/V8 feature that creates a new context for console output. It doesn't have Node-specific implementation, so it is supposedly implemented in V8.
Since it's experimental, there may be inconsistencies. console.context
didn't work as expected for me in any recent Chromium versions, and it isn't supposed to provide useful results in Node.js.
Upvotes: 4