(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');
參考