JSFiddle - React, Tailwind, and code Playground
JavaScript
function ConcreteObservable() {
this.observers = [];
}
ConcreteObservable.prototype.addObserver = function(observerObject){
this.observers[this.observers.length] = observerObject;
};
ConcreteObservable.prototype.removeObserver = function (observerObject) {
this.observers = this.observers.filter(item => item !== observerObject);
};
ConcreteObservable.prototype.notifyObserver = function (data) {
this.observers.forEach(observer => {
observer.handleEvent('here is event');
});
};
function Observer() {
}
Observer.prototype.handleEvent = function (data) {
console.log(data);
};
const observable = new ConcreteObservable();
const observer1 = new Observer();
const observer2 = new Observer();
const observer3 = new Observer();
observable.addObserver(observer1);
observable.addObserver(observer2);
observable.addObserver(observer3);
console.log(observable);
observable.removeObserver(observer3);
console.log(observable);
observable.notifyObserver();