更好的方法在咖喱中使用封口?

时间:2016-04-13 20:07:13

标签: javascript currying

我有一个像这样的JavaScript对象:

var functionsMap={
    functionName1:function(a, b, curryData){},
    functionName2:function(a, b, curryData){}
}

我有以下咖喱情况:

var currySomeFunctions = function(functionsMap, curryData) {
    var wrappedSet = {};
    for (var functionPropertyName in functionsMap) {
        var element = functionsMap[functionPropertyName];

        wrappedSet[i] = function(element) {
            return function(a, b) {
                return element(a, b, curryData);
            }

        }(element)
    }
    return wrappedSet;
}

如您所见,我已将最终函数包装在两个函数体中。正如你所料,我忘了,依靠封闭只发现所有产生的curried函数都引用了最后一个元素'功能。 (啊,关闭!)。实现这一点,我不得不添加另一个范围,以便绑定元素。

return function()( return function(var){} }(var)似乎很麻烦。

我想知道你们中的任何一位天才能否告诉我这些人有多聪明?

0 个答案:

没有答案