JSFiddle - React, Tailwind, and code Playground

by msm595

JavaScript

function doWith(myLib) {
    for (var key in myLib) {
        if (myLib.hasOwnProperty(key)) {
            this[key] = myLib[key];
        }
    }
    console.log(this)
}

doWith.prototype.apply = function (func) {
    func.apply(this)
};

var lib = {
    init: function(param1) {
        console.log(param1);
    },
    f2: function() {
        return "hi";
    }
};

function outsideFunc() {
    console.log("outside calls are fine too");
}

doLib = new doWith(lib)
doLib.apply(function(){init(f2());outsideFunc();});