Javascript: Как найти экземпляр класса метода только из указателя на этот метод

У меня есть экземпляр класса с некоторым методом. Если у меня есть только указатель на этот метод, как найти указатель на его родительский экземпляр класса?

Моя цель здесь состоит в том, чтобы сделать автоматическую привязку () при работе с eventListeners.

Упрощенная версия моего текущего исходного кода выглядит следующим образом:

function CreateListener(domElement , type , callback){
    domElement.addEventListener(type , callback);
}

var MyClass = function(){
    this.name = "Bob";
    CreateListener(document.body , "mousedown" , this.OnMouseDownCallback.bind(this) );
};
MyClass.prototype.constructor = MyClass;

MyClass.prototype.OnMouseDownCallback = function(event){
    console.log("YAY !" , this.name);
};

var MyInstance = new MyClass();

Я хотел бы сделать что-то вроде этого:

function CreateListener(domElement , type , callback){

    // I want to to the binding HERE,
    // only using the callback variable in some way,
    // to find a pointer to MyInstance and use it in place of the "???"

    domElement.addEventListener(type , callback.bind( ??? ) );
}

var MyClass = function(){
    this.name = "Bob";
    CreateListener(document.body , "mousedown" , this.OnMouseDownCallback);
};
MyClass.prototype.constructor = MyClass;

MyClass.prototype.OnMouseDownCallback = function(event){
    console.log("YAY !" , this.name);
};

var MyInstance = new MyClass();

После многих поисков... Я начинаю думать, что это вообще невозможно:/ Но любая подсказка, обходной путь или другая идея будут приветствоваться!

0 ответов

Другие вопросы по тегам