Last active
December 1, 2015 13:01
-
-
Save akkijp/ffdc012a94c4f9ea6499 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function Observer(){ | |
this.listeners = {}; | |
} | |
Observer.prototype.on = function(event, func) { | |
if(!this.listeners[event]){ | |
this.listeners[event] = []; | |
} | |
this.listeners[event].push(func); | |
}; | |
Observer.prototype.off = function(event, func) { | |
var ref = this.listeners[event], | |
len = ref.length; | |
for(var i=0; i<len; i++){ | |
var listener = ref[i]; | |
if(listener === func){ | |
ref.splice(i, 1); | |
} | |
} | |
}; | |
Observer.prototype.trigger = function(event, func) { | |
var ref = this.listeners[event] | |
for(var i=0,len=ref.length; i<len; i++){ | |
var listener = ref[i]; | |
if(typeof listener === "function") listener(); | |
} | |
}; | |
module.exports = Observer; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var observer = require("./observer"); | |
var observer = new observer(); | |
observer.on("morning", function(){ | |
console.log("Good morning 1"); | |
}); | |
observer.on("morning", function(){ | |
console.log("Good morning 2"); | |
}); | |
observer.trigger("morning"); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment