JSFiddle - React, Tailwind, and code Playground

by Daniel Lamb

JavaScript

/*
Dependency injection in a functional style using JavaScript closures.
*/
(function (window) {
    'use strict';

    var factories, greet;

    function createFactories(display) {
        return {
            createGreet: function (salutation) {
                return function (thing) {
                    display(salutation + thing + '!');
                };
            }
        };
    }

    factories = createFactories(window.alert);
    greet = factories.createGreet('Hello ');

    greet('World');

}(this));