我有一个像这样的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)
似乎很麻烦。
我想知道你们中的任何一位天才能否告诉我这些人有多聪明?