js回调函数中,如果写具名函数,目的是啥?

clipboard.png
如图,在js中,一般大家都是

entry.forEach(function(){})

但是vue的源码里,给回调函数加了名字,这是什么原因呢?有啥玄机呢?

entry.forEach(function commitIterator(){})
阅读 3.3k
4 个回答

这是一个好的实践,可以方便你进行调试,假设此函数有错误,error.stack 的函数栈会显示此函数名方便你定位。
你可以自行断点查看匿名和具名函数在函数栈中的显示区别!

这个和 立即执行函数里面写IIFE是一个道理,增加代码的可读性

(function IIFE(){
   // somecode...
})();

没有什么特别的目的,起个名方便理解这个函数的作用而已,增强代码可读性。

(function fib(i) {
  if (i === 1) return 1;
  return i + fib(i - 1);
})(4);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题