以concat模式logging函数的控制台打印函数实现
这是一个简单的例子
function foo() { const bar = '123'; return bar; }
以下是console.log在NodeJS中的行为和打印方式:
> console.log(foo) [Function: foo] > console.log("", foo) function foo() { const bar = '123'; return bar; }
这是为什么? 有没有办法隐藏它,即只得到[Function: foo]
打印。
Chrome开发人员面板中也出现了相同的行为。
读了一会之后,我相信这是由于toString
的函数。 当你使用console.log("", foo)
, console.log
所有的参数string化并且连接它们,因此调用foo.toString
。
你也可以看到相同的行为,如果你也做console.log(foo.toString())
作为进一步的补充,你可以replacetoString
:
function foo() { const bar = '123'; return bar; } foo.toString = () => 'replaced';
现在你得到(在NodeJSterminal):
> console.log(foo) { [Function: foo] toString: [Function] } undefined > console.log("", foo) replaced undefined > console.log(foo.toString()) replaced