我知道我的主题标题不清楚所以这里有一个简短的代码来解释:
function SomeFunction() {
var objPointer = this;
this.someProp = null;
this.someSingleton = null;
this.someCallerToMethodWithCallback = function(){
this.someSingletone = new someLibObj(arg1,arg2,...);
this.someSingletone.someMethodWithCallback(arg1,arg2,...,this.someCallback);
};
this.someCallback = function(param1){
this.someProp // inaccessible due to "this" is referring to someLibObj
objPointer.someProp // accesible
};
}
如你所见,我定义了对象,它包含someSingleton - someLibObj的实例,然后我调用someMethodWithCallback,其中回调函数在我的对象中,但在这个回调函数里面#34;这个"不是指我的对象,而是指对象,它称之为回调。
我很好奇: 是否有更简单的方法来访问我的对象,而不是存储"这个"在另一个可怜的人里面?
答案 0 :(得分:1)
我认为在this.someCallback
行中使用this.someCallback.bind(this)
替换this.someSingletone.someMethodWithCallback...
应该这样做。