2014-02-24_javascript_Pub/Sub

var PubSub={

   subscribe:function(ev,callback){

       //create callback object if it not exists

       var calls=this._callbacks || (this._callbacks={});

       (this._callbacks[ev] || (this._callbacks[ev]=[])).push(callback);

       return this;    

   }

   publish:function(){

       var args=Array.prototype.slice.call(argements,0);

       var ev=args.shift();

       var list,calls,i,l;

       if(!(calls=this._callbacks))return this;

       if(!(list=calls[ev])) return this;

       for(i=0;l=list.length;i<l;i++){

           list(i).apply(this,args);

       }

       return this;

   }

}

PubSub.subscribe("wem",function(){

   alert("Wem!");

});

PubSub.publish("wem");

//From O'Reilly

你可能感兴趣的:(JavaScript,function,subscribe)