Skip to content

Commit

Permalink
doc: note about custom inspect functions
Browse files Browse the repository at this point in the history
See: nodejs#1798

When an Object is printed in REPL, the actual representation can be
overriden by defining `inspect` method on the objects. This patch
includes a note about the same in the REPL documentation
  • Loading branch information
thefourtheye committed Jul 10, 2015
1 parent 2ba1740 commit b08202a
Showing 1 changed file with 23 additions and 0 deletions.
23 changes: 23 additions & 0 deletions doc/api/repl.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -237,3 +237,26 @@ The following key combinations in the REPL have these special effects:
- `<ctrl>D` - Similar to the `.exit` keyword.
- `<tab>` - Show both global and local(scope) variables


### Overriding representation of Objects in REPL

REPL module internally uses
[`util.inspect`](https://iojs.org/api/util.html#util_util_inspect_object_options),
by default, to print the actual values. But, `util.inspect` delegates the call
to the object's `inspect` function, if it has one. You can read more about
this delegation,
[here](https://iojs.org/api/util.html#util_custom_inspect_function_on_objects).

So, if you have defined an `inspect` function on an object, like this

> var obj = { foo: 'this will not show up in the inspect() output' };
undefined
> obj.inspect = function(depth) {
... return { bar: 'baz' };
... };
[Function]

and try to print `obj` in REPL, it will invoke the custom `inspect` function

> obj
{ bar: 'baz' }

0 comments on commit b08202a

Please sign in to comment.