JSFiddle - React, Tailwind, and code Playground

HTML

<div id="output"></div>

JavaScript

var HelloWorldClass = function() {
    this.greetings = [];
}
HelloWorldClass.prototype.addGreeting = function(greeting) {
    this.greetings.push(greeting);
}
HelloWorldClass.prototype.sayHello = function() {
    document.getElementById('output').innerHTML += this.greetings;
    this.greetings.forEach(function(greeting) {
        greeting.execute();        
    })
}

var TestClass = function() {
    this.testHello = function(callback) {
        alert("TestHello is working, now callback");
        callback();
    }
}


var main = function() {
    var helloWorld = new HelloWorldClass();
    var test = new TestClass();
    helloWorld.addGreeting({
        execute: function() {
            alert("Konichiwa!");
        }
    });
    helloWorld.sayHello();
    
    test.testHello(helloWorld.sayHello);
}

main();