通过循环创建咖喱函数

时间:2018-12-12 17:03:16

标签: javascript functional-programming

我想使用对象中具有不同值的函数,并将创建的函数另存为对象键。循环时,当前值会被覆盖

function print (a,b){
    console.log(a + b)
}

var functions = {
    foo : "",
    bar : ""
}

for (var key in functions) {

    functions[key] = function(a){
        var val = key; // the problematic part saving the value
        return print(a,val)
    }

}

functions.foo('test-')
functions.bar('test-')

输出

>>>test-bar
>>>test-bar

所需的输出

 >>>test-foo
 >>>test-bar

我错过了关于如何保存val变量而不在循环时不覆盖它的想法

0 个答案:

没有答案