这是我的功能的简化版本。问题是我在警报中都得到了 2 次。我相信这是一个变量范围问题,但我似乎无法弄清楚。
var someObj = {"a" : 1, "b" : 2};
function getData(obj){
var bunchOfFunctions = {};
for(var key in obj){
value = obj[key];
bunchOfFunctions[key] = function(){
alert(value);
}
}
return bunchOfFunctions;
}
var functs = getData(someObj);
for(var key in functs){
functs[key]();
}
这是一个 jsfiddle http://jsfiddle.net/earlonrails/q4d66/