在setTimeout中使用console,不在控制台留下文件信息及代码行

240 阅读1分钟

前段时间偶然间看见了facebook网站的控制台打印了如下信息

1680356439671.png 感觉很神奇,因为它竟然没留下代码的位置。 因为我们平时的打印一般都是这样

1680354277792.png 为此我谷歌百度了很多变,都找不到答案,还特意跑到知乎上去问,但是好像没有人关注过这个问题,今天心血来潮特意又去看了一遍,发现其实非常简单

1680355508505.png

简化一下就是这样

window.setTimeout(console.log.bind(console,'hello word'));

然后我们的控制台就也可以变成这样了

1680355800842.png

到了这里其实我还是有点懵逼的,我只能将它解释为这种方式之后,浏览器找不到正确的代码行了,所以就直接不显示了。因为setTimeout不是立即执行,并且console.log.bind(console,'hello word')已经是一个最小单元的函数了。