js 能不能监听到每个函数的调用?

有一份项目代码,希望运行的时候,每个函数执行时都打印一下这个函数的名字。有办法吗?

阅读 4.4k
2 个回答
function wrapper(cb) {
    return (...params) => {
      console.log(cb.name);
      return cb(...params);
    };
}

如果是为了知晓函数的调用顺序,在最后一个被调用的函数里写一句 console.trace(); 会更好一些;
如果是为了更深入地调试函数,在第一个函数里写一句 debugger;是最佳选择。
如果确需输出所有函数的函数名,那可以写一个 babel 插件把代码打包,把每个函数都用一段类似楼上这样的代码包装起来(使用时注意 this 的指向问题)。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题