все же проще простого:
var log = [];
var decorate = function(callback, log) {
return function(param) {
callback(log.push(param));
}
};
var callback = function(log) {
alert(log);
};
decorate = decorate(callback, log);
decorate(1);
decorate(2);
alert(log);