最近在給前人留下的項目填坑。在這個過程中,我發(fā)現(xiàn)往往定位一個Bug需要很長時間,特別是有一些被多次調(diào)用的函數(shù)極其難以定位。在此過程中,我也學(xué)會了利用一些特殊的技巧,在這里做一下分享。
Chrome Dev Tool,我的最愛
? 利用Google瀏覽器提供的開發(fā)者工具進行調(diào)試,一直是前端工程師的一項基本功。但是,仍然有些功能,以前一直不怎么用到調(diào)用棧(Call Stack)的功能。最近發(fā)現(xiàn),它特別的好用,特別是在弄清楚一些函數(shù)的運行流程的時候。

dev-call-stack
? 你可以從上圖看到,當(dāng)你啟用斷點的時候,右側(cè)會有一個函數(shù)調(diào)用棧(Call Stack)你可以查看到函數(shù)的具體調(diào)用情況。
Console黑科技
如果你懶得打斷點,可以在函數(shù)體內(nèi)加入以下這句:
console.log("Being called from " + arguments.callee.caller.toString());

demo-call-stack
你可以從最后打印出來的結(jié)果看到,hello函數(shù)是被sayHello這個函數(shù)調(diào)用了。