我正在尝试将一个方法作为回调引用传递给另一个类的方法:
function A() {
this.callback = function(){return 0;};
}
A.prototype.set = function(cb) {
this.callback = cb;
};
A.prototype.test = function(){
console.log("test " + this.callback());
};
function B(o) {
this.prop = "blah B";
o.set(this.blah);
}
B.prototype.blah = function() {
console.log(this);
return this.prop;
};
我对执行的期望
a = new A();
b = new B(a);
a.test();
是结果
>B { prop="blah B", blah=function()}
>test blah B
但是控制台显示的是:
>A { cb=function(), set=function(), test=function()}
>test undefined
似乎将方法blah
分配给执行的A
..
为什么我得到这个结果?
我该如何获得我预期的结果?
function(){return me.blah();}
(因为blah
返回一个值)。我不知道bind
,它很有趣...而且对于IE兼容性来说并不重要,我的代码其余部分也不兼容<IE8... - Thierry J.