我有以下代码
http://jsfiddle.net/qhoc/SashU/1/
var Callback = function(op) {
this.callback = op.callback;
}
var Test = function (op) {
for (var option in op) {
if (!this[option]) this[option] = op[option];
}
}
Test.prototype.init = function(bb) {
console.log('aa = ' + this.aa);
console.log('bb = ' + bb);
if (bb < 3) {
this.init(bb + 1);
} else {
this.callback;
}
}
var finalCallback = function() {
console.log('this is finalCallback');
}
var myCallback = new Callback({
callback: finalCallback
});
var myTest = new Test({
aa: 1,
callback: myCallback
});
myTest.init(1);
第 19 行根本没有打印'this is finalCallback'
,因为this.callback;
已执行但它没有指向函数。但以下工作:
myTest.init(1);
myCallback.callback();
我猜当传递myCallback
给时myTest
,它没有传递finalCallback
??
有人可以帮助解释这种行为以及如何解决它吗?