(function($) {
var o = $({});
$.subscribe = function() {
o.on.apply(o, arguments);
};
$.unsubscribe = function() {
o.off.apply(o, arguments);
};
$.publish = function() {
o.trigger.apply(o, arguments);
};
}(jQuery));
function a(){
var a = 1;
var b = 2;
$.publish('done',[a,b]);
}
//这里一定要return function 。其实这里就是$('selector').on('event',function(eventobj,a,b){----})
//的function部分
function b(){
return function(_,a,b){//这里跳过第一个event对象参数
console.log('param get:'+a+' & '+b);
}
}
//订阅done事件,第二参数传递b(),而不是b
$.subscribe('done',b());
//执行a方法,内部发布done事件
a();
//解除订阅
$.unsubscribe('done');
参考