Home  >  Article  >  Web Front-end  >  匿名函数究竟要不要用,有什么优缺点?

匿名函数究竟要不要用,有什么优缺点?

WBOY
WBOYOriginal
2016-06-07 08:43:302822browse

JavaScript经常会看到匿名函数的使用,可是也有一部分人反对匿名函数的使用,那究竟我们是用呢还是不用好呢?

回复内容:

谁反对了? 匿名函数的缺点是不便于后续的检索和识别(大部分匿名函数合理的使用场景也没有这种需求),不过这一点在ES6有了改善,ES6的每个函数都有一个name属性,方便辨别。 只是某些情况下使用匿名函数不合理,一棍子全打死是不对的。
题主,多看书多敲代码 根据场景选择是否用匿名函数

比如在回调里:

可以选择用,因为它的名字没有那么重要:
http.createServer(function(req, res) {
  // do something...
});
缺点就是。。匿名函数的事件。。不能解绑。。。 起名字真的是个头疼的问题 为函数注册事件的时候不要用 匿名函数,,,,,
不然 你就不能解绑了。
当然,如果你用的是框架,框架会帮你解决。 匿名函数不适合使用的场景之一就是调试,

比如说在nodejs中,你追踪某个语句出错的使用,使用TJ写的调试插件,就会直接告诉你是哪个函数出了问题,如果函数有名字,直接显示名字,但是没有名字,就直接写anonymous

还有一个场景是回调只用一次的场景,一般用onlyOnce包装好,如果调用第二次,会显示是哪个函数出了错,这个是async改进过的地方

在windows Asure提供的nodejs包中,你会发现所有的原型方法对应的函数上都加了原型方法名

joyent推荐多使用有名字的短小并且精干的函数

joyent并不鼓励使用闭包,如果程序变大了,堆栈跨域调用的层数增加,维护起来会很吃力,而闭包的显著特点之一就是匿名回调 存在即合理,如楼上所说,谁反对了?
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn