是谁调用了我的函数?

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

Chrome Dev Tool,我的最爱

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

dev-call-stack

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

Console黑科技

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

console.log("Being called from " + arguments.callee.caller.toString());
demo-call-stack

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容