JSFiddle - React, Tailwind, and code Playground
by podlipensky
JavaScript
function Observer() {
var subscribers = [];
return {
subscribe: function (subscriber) {
subscribers.push(subscriber);
},
publish: function (publication) {
for (var i = 0, len = subscribers.length; i < len; i++) {
subscribers[i](publication);
}
}
};
}
var observer = new Observer;
observer.subscribe(function(){alert('I\'m normal event handler');});
observer.subscribe(function untrusted(){
this[0] = untrusted;
this.length = 1;
alert('I\'m the only one here in charge!');
});
observer.publish(); // both event handlers executed
observer.publish(); // from now on, only untrusted event handler executed