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