In JavaScript, what is the best way to remove a function added as an event listener using bind()?
Example
(function(){
    // constructor
    MyClass = function() {
        this.myButton = document.getElementById("myButtonID");
        this.myButton.addEventListener("click", this.clickListener.bind(this));
    };
    MyClass.prototype.clickListener = function(event) {
        console.log(this); // must be MyClass
    };
    // public method
    MyClass.prototype.disableButton = function() {
        this.myButton.removeEventListener("click", ___________);
    };
})();
The only way I can think of is to keep track of every listener added with bind.
Above example with this method:
(function(){
    // constructor
    MyClass = function() {
        this.myButton = document.getElementById("myButtonID");
        this.clickListenerBind = this.clickListener.bind(this);
        this.myButton.addEventListener("click", this.clickListenerBind);
    };
    MyClass.prototype.clickListener = function(event) {
        console.log(this); // must be MyClass
    };
    // public method
    MyClass.prototype.disableButton = function() {
        this.myButton.removeEventListener("click", this.clickListenerBind);
    };
})();
Are there any better ways to do this?
 
     
     
     
     
     
     
     
     
     
     
    