这是一个简单的例子
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开发人员面板中也会发生相同的类似行为。
答案 0 :(得分:0)
在阅读了一下之后,我相信这是由函数toString
引起的。当您使用console.log("", foo)
时,console.log
将所有参数字符串化并对其进行连接,因此会调用foo.toString
。
如果您同时执行console.log(foo.toString())
另外,您可以替换toString
:
function foo() {
const bar = '123';
return bar;
}
foo.toString = () => 'replaced';
现在你得到(在NodeJS终端中):
> console.log(foo)
{ [Function: foo] toString: [Function] }
undefined
> console.log("", foo)
replaced
undefined
> console.log(foo.toString())
replaced