function Callbacks() {
var list = [];
var self;
self = {
add: function(fn) {
list.push(fn)
},
fire: function(args) {
list.forEach(function(fn) {
fn(args);
})
}
}
return self;
}
function fn1(val) {
console.info('fn1 says:' + val);
}
function fn2(val) {
console.info('fn2 says:' + val);
}
var cbs = Callbacks();
cbs.add(fn1);
cbs.add(fn2);
cbs.fire('foo');
cbs.fire('bar');