JSFiddle - React, Tailwind, and code Playground

JavaScript

var ClientControl = function () {
    //some instance-specific code here
};

var counter = 0;

ClientControl.prototype = {
    initialize: function () {
        this.documentClickedDelegate = $.proxy(this.documentClicked, this);
        this.num = counter++;
    },

    bind: function() {
        $(document).bind("click.proxy" + this.num, this.documentClickedDelegate);
    },

    unbind: function() {
        $(document).unbind("click.proxy" + this.num, this.documentClickedDelegate);
    },

    documentClicked: function() {
        alert("document clicked!");
    }
};

var Control1 = new ClientControl();
Control1.initialize();
var Control2 = new ClientControl();
Control2.initialize();

Control1.bind();
Control2.bind();

Control1.unbind();