调用并调试函数

debug命令可以调用并调试一个函数

在我们想要查找问题并进行详细调试的时候,一个简单的技巧就是先调用一下 debugger 命令。例如,假设我们有以下形式的函数:

function fn() {
  /* 某些代码 */
}
可以在自己的控制台里这样操作:
debugger; fn(1);

然后点击 Step into next function call,就能对 fn 函数的具体实现进行调试了。

这个技巧在你不想找到函数 fn 的详细定义并手动设置断点,或者当这个 fn 函数是动态绑定到某个函数上,你又不清楚具体源头在哪里时,尤其好用。

在 Chrome 浏览器里,可以在命令行里直接使用   

debug(fn) 

命令,这样每次运行 fn 函数时,调试器都会暂停在这个函数的执行过程中,方便你查看和排查问题。

debug还可以调试系统对象的方法,例如

debug(window.location.replace);
debug(window.location.assign);

debug比inspect好用,inspect对函数,仅能定位到函数的定义,不能直接调试,各有千秋吧

调试属性读取

如果你有一个对象,想知道它的属性什么时候会被读取,可以在对象的 getter 中调用 debugger。例如,将 {configOption: true} 转换为

{ 
  get configOption() { 
    debugger; return true; 
  }
}

当你将一些配置选项传递给某个地方,并且想要看到它们如何被使用时,这个技巧非常有用

 

 

出处:一些你可能不知道的奇葩调试技巧

posted @ 2023-12-21 11:04  全玉  阅读(21)  评论(0编辑  收藏  举报