I made a observer design pattern implementation
Version1
// --------------------------------------------------functionSubject () {}subject.prototype.add=function(obj) {if(typeof(obj.update) = = = "function") { This. Objects.push (obj); return true; } return false;} Subject.prototype.notify=function(subject) { for(varIinch This. Objects) {obj= This. Objects[i]; Obj.update (subject); }}// --------------------------------------------------functionSubject1 () {Subject.call ( This); This. Objects =NewArray (); This. message = "Hello";} Subject1.prototype=NewSubject () Subject1.prototype.update=function(s) {if(s! =NULL) This. Message =s; This. Notify ( This);}// --------------------------------------------------functionObserver () {}observer.prototype.update=function(subject) {alert (subject.message);}// --------------------------------------------------varSubject =NewSubject1 ();varObserver =NewObserver (); Subject.add (Observer); Subject.update (); Subject.update ("Same World");
Version2
OOP Programming for JavaScript 2