当这不是我们想要的时候,JS Access Object属性

时间:2015-06-09 20:35:00

标签: javascript

我知道我的主题标题不清楚所以这里有一个简短的代码来解释:

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;这个"不是指我的对象,而是指对象,它称之为回调。

我很好奇:  是否有更简单的方法来访问我的对象,而不是存储"这个"在另一个可怜的人里面?

1 个答案:

答案 0 :(得分:1)

我认为在this.someCallback行中使用this.someCallback.bind(this)替换this.someSingletone.someMethodWithCallback...应该这样做。