带有回调问题的原型

时间:2010-12-21 19:58:15

标签: prototype namespaces callback

function Foo() {
 this.bar = false;
}

Foo.prototype={
 onLoad: function() {
          this.bar=true;
         },

 create: function(id) {
          SomeClass.someMethod({
           id: id,
           onWorkIsDone: this.onLoad
          });
         }
};

var temp=new Foo();
temp.create();

此示例在字符串'onWorkIsDone:this.onLoad'中存在逻辑错误。我必须放置什么而不是'this.onLoad'来使SomeClass在完成它的工作时调用temp.onLoad方法?

2 个答案:

答案 0 :(得分:0)

我认为这就是你所追求的......

function Foo() {
 this.bar = false;
}

var SomeClass = { someMethod: function(vars) {
                        vars.onWorkIsDone();
                    }
                }

Foo.prototype={
 onLoad: function() {
          alert("hello!");
         },

 create: function(id) {
          SomeClass.someMethod({
           id: id,
           onWorkIsDone: this.onLoad
          });
         }
};
你是否正确调用了onWorkIsDone()方法?

答案 1 :(得分:0)

    onWorkIsDone: (function() {
                        var self=this;
                        return function() {
                            self.onLoad()
                        }
                  }).call(this)

简单的关闭就可以了。