每个function应该是封闭?

由于闭包和稍后使用闭包variables调用函数的能力似乎是JavaScript的一大优势,我发现自己经常使用下面的构造:

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

这是正常的JavaScript编程,或者有这样的方式实现所有function的问题/陷阱? 我没有看到任何缺点,而且这种模式总是将函数的function与闭包的潜在优点相结合,并能够将其传递并稍后执行。

当需要closures时,可以这样调用两次:

 func()(parms); 

…但这是一个罕见的发生。

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

       

网上收集的解决方案 "每个function应该是封闭?"

你想做什么,就是所谓的function咖喱 。 但是还有“sorting”的字样。 这指导如何正确地做,如果你有兴趣。

当你需要时尽量使用闭包。 因为如果你不知道你在做什么,closures会导致严重的内存泄漏。 谷歌优化说

创build闭包要比创build没有闭包的内部函数慢得多,比重用静态函数慢得多

当我不需要closures时,我只是这样调用它两次:

 func()(parms); 

有你的理由不这样做。 这在大部分时间是不必要的,而且通常是非常规的。 坚持基础知识,所以你的代码本身不是一个奇怪的岛屿。 这并不是说这种模式是不合适的,而是绝对不会无缘无故的。