【发布时间】:2015-08-07 13:20:30
【问题描述】:
由于闭包和稍后调用具有封闭变量的函数的能力似乎是 javascript 功能的一大优势,我发现自己经常使用以下构造:
var func;
func = function (args) {return function (moreArgs) {
Do something;
};};
这是正常的 javascript 编程还是以这种方式实现所有功能存在问题/陷阱?我没有看到任何缺点,而且这种模式总是设置一个具有闭包潜在好处的函数......能够传递它并在以后执行它。
当需要闭包时,可以这样调用两次:
func()(parms);
...但这种情况很少见。
这似乎在任何情况下都可以正常工作。这是应该在 Javascript 中设置函数的方式还是过度使用闭包?这种方法似乎没有任何实质性的缺点。
【问题讨论】:
-
不确定我是否会像那样编写 every 函数,但是模块化模式将具有相似关注点的函数放入一个闭包中,因此它们有效地拥有自己的一组伪全局变量很常见。
-
整个想法被称为“柯里化”
标签: javascript node.js function closures