I have a function that duplicates a map containing key:function pairs, wrapping each function with a calling funcion.
function duplicateFunctionsMap(functionsMap){
var newMap = {};
for (var name in functionsMap){
var originalFunc = functionsMap[name];
newMap[name] = function(){
originalFunc();
}
}
return newMap;
}
now trying to run any of the entries in the duplicated map turns out always calling the last one
duplicateFunctionsMap({
first: function(){alert("first");},
last: function(){alert("last");}
})["first"](); // outputs "last"