我正在尝试编写面向对象的JavaScript代码,针对一个具有昂贵初始化过程的对象,该过程将在完成时回调函数。
问题是调用者需要在回调例程中使用该对象的函数,而该对象尚不存在:
// ctor for foo object
function foo(callback) {
// do slow initialization here..
// callback when done
callback();
};
foo.prototype = function() {
return {
// doStuff method
doStuff: function() {
alert('stuff done');
}
};
}();
// instantiate the foo object, passing in the callback
var f = new foo(function() {
//Uncaught TypeError: Cannot call method 'doStuff' of undefined
f.doStuff();
});
jsFiddle 这里我错过了什么?