JSFiddle - React, Tailwind, and code Playground

HTML

<button id="byListener">Click me!</button>
<button id="byDecorator">Click me too!</button>

JavaScript

var button = document.getElementById('byListener');
var onButtonClick = function(event) {
    alert('Hello world!');
    button.removeEventListener('click', onButtonClick);
}
button.addEventListener('click', onButtonClick, false);

// ---------

var secondButton = document.getElementById('byDecorator');
var one = function(fn) { // Our decorator
    var runned = false;
    return function() {
        if(!runned) {
            runned = true;
            return fn.apply(arguments);
        }
    }
}
var onSecondButtonClick = one(function(event) {
    alert('Hello world!');
})
secondButton.addEventListener('click', onSecondButtonClick, false);