每个功能都应该闭包吗?

西索

由于闭包以及稍后通过其封闭变量来调用函数的功能似乎对javascript的功能是一大优势,因此我发现自己一直在使用以下构造:

var func;
func = function (args) {return function (moreArgs) {
    Do something;
};};

这是正常的javascript编程,还是以这种方式实现所有功能有问题/陷阱?我没有看到任何缺点,并且该模式始终利用闭包的潜在好处来设置函数...并具有将其传递并稍后执行的能力。

需要关闭时,可以这样调用两次:

func()(parms);

...但是那是罕见的情况。

这似乎在每种情况下都可以正常工作。这是应该在Javascript中设置函数的方式还是过度使用闭包?这种方法似乎没有任何实质性的缺点。

years_of_no_light

您试图做的是某种称为函数currying的函数但是同样有“ sort of”一词。如果您有兴趣,将指导如何正确进行操作。

尝试在需要时完全使用闭包。因为如果您不知道自己在做什么,关闭可能会导致严重的内存泄漏。谷歌优化

创建闭包比创建不带闭包的内部函数要慢得多,并且比重用静态函数要慢得多

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

每个执行批处理后都应该提交吗?

具有单个抽象方法的每个接口都应该是功能接口?

每个微服务都应该管理自己的用户权限和用户角色吗?

每个不使用self参数的方法都应该是静态类吗?

每个片段都应该有自己的活动吗?

每个优秀的Java / Java EE开发人员都应该回答的问题吗?

每个REST端点在Java EE中都应该是异步的吗?

页面上的每个“组件”都应该是angularJS中的指令吗?

每个HTML页面都应该有一个主标记吗?

每个表都应该有一个主键吗?

每个优秀的.NET开发人员都应该回答的问题吗?

在iOS中,每个UIView都应该有一个UIViewController吗?

每个组件(.xml)都应该有自己的 eclipse-project 吗?

每个奇特的指针都应该是一个迭代器吗?

在每个foreach语句之后,我都应该同时取消设置$ key和$ value吗?

每个 SolrCloud 节点都应该有自己的 ssl 证书吗?

每个字体字符都应该有自己的字距表吗?

每个程序员都应该了解内存什么?

C#每个属性都应该执行TestMethod

所有课程都应该可以测试吗?

每次发布后都应该关闭频道/连接吗?

所有工厂方法都应该公开吗?

方法中每个可能的分支都应该有一个单独的junit吗?

Python中函数参数的有效性检查:每个函数都应该这样做吗?

使用 createEntityAdapter 时,每个 React 组件都应该有自己的切片吗?

C 中的每个函数都应该有自己的 .c 文件吗?或者我可以将程序的所有功能放在一个 .c 文件中吗?

应该在“ WHERE”子句中使用的每个MYSQL字段都应该有一个索引吗?

在Android上使用MVVM时,每个活动都应该具有一个(只有一个)ViewModel吗?

每个循环都应该在 xslt 中重复两次