gpt4 book ai didi

javascript - setTimeout(console.log.bind(console, "something")) 如何工作?

转载 作者:行者123 更新时间:2023-11-28 15:09:08 24 4
gpt4 key购买 nike

阅读后How to hide source of Log messages in Console? ,我对这个命令的工作原理感到困惑。

我尝试不使用 setTimeout 来包装它,但控制台日志始终显示日志消息的来源。即使我尝试查看堆栈跟踪,它也只显示第二行之类的内容: enter image description here

setTimeout(console.log.bind(console, "something")) 的作用是什么?而且setTimeout好像不能去掉?

还有其他方法可以做同样的事情吗?

最佳答案

让我们一点一点地来看:

  1. 什么是console.log.bind(console, "something")

    Function#bind function 创建一个新函数,调用时将使用第一个参数 this 来调用原始函数。用于通话并传递任何进一步的论据。所以console.log.bind(console, "something")创建(但不调用)一个函数,当调用该函数时,该函数将调用 console.logthis设置为console并传递"something"作为第一个参数。

  2. 什么是setTimeout(x, y)

    它调度函数xy 之后调用浏览器的毫秒数;如果您不提供y ,默认为0 (当前代码完成后立即回调)。

综合起来,setTimeout(console.log.bind(console, "something"))安排调用 console.log经过短暂的延迟后。

使用延迟意味着调用console.log不会直接从您执行此操作的代码中发生;浏览器调用 console.log直接,而不是在您的代码中。因此,堆栈跟踪不会显示它发生在您的代码中,因为它没有发生。

关于javascript - setTimeout(console.log.bind(console, "something")) 如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37430531/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com