调用并调试函数
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; } }
当你将一些配置选项传递给某个地方,并且想要看到它们如何被使用时,这个技巧非常有用