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();
После многих поисков... Я начинаю думать, что это вообще невозможно:/ Но любая подсказка, обходной путь или другая идея будут приветствоваться!