JSFiddle - React, Tailwind, and code Playground

by Andrew Gerst

JavaScript

// jQuery Method Context

function bind(fnThis, fn){
    var args = Array.prototype.slice.call(arguments, 2);
    return function(){
        if (0 < args.length) arguments = args;
        return fn.apply(fnThis, arguments);
    };
}

window.scope = "Global Scope";
window.myobject = {
    scope: "Local Scope",
    mymethod: function(){
        console.log(this);
        alert(this.scope);
    }
};

// Undefined (there isn't a scope property in the document object)
$(document).ready(myobject.mymethod);

// Global Scope
$(document).ready(myobject.mymethod.bind(window));
$(document).ready($.proxy(myobject.mymethod, window));

// Local Scope
$(document).ready(function(){myobject.mymethod()});
$(document).ready(myobject.mymethod.bind(myobject));
$(document).ready(bind(myobject, myobject.mymethod));
$(document).ready($.proxy(myobject, "mymethod"));
$(document).ready($.proxy(myobject.mymethod, myobject));