是谁调用了我的函数?

最近在给前人留下的项目填坑。在这个过程中,我发现往往定位一个Bug需要很长时间,特别是有一些被多次调用的函数极其难以定位。在此过程中,我也学会了利用一些特殊的技巧,在这里做一下分享。

Chrome Dev Tool,我的最爱

​ 利用Google浏览器提供的开发者工具进行调试,一直是前端工程师的一项基本功。但是,仍然有些功能,以前一直不怎么用到调用栈(Call Stack)的功能。最近发现,它特别的好用,特别是在弄清楚一些函数的运行流程的时候。

是谁调用了我的函数?_第1张图片
dev-call-stack

​ 你可以从上图看到,当你启用断点的时候,右侧会有一个函数调用栈(Call Stack)你可以查看到函数的具体调用情况。

Console黑科技

如果你懒得打断点,可以在函数体内加入以下这句:

console.log("Being called from " + arguments.callee.caller.toString());
是谁调用了我的函数?_第2张图片
demo-call-stack

你可以从最后打印出来的结果看到,hello函数是被sayHello这个函数调用了。

你可能感兴趣的:(是谁调用了我的函数?)