我想使用对象中具有不同值的函数,并将创建的函数另存为对象键。循环时,当前值会被覆盖
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变量而不在循环时不覆盖它的想法