sai*_*lle 5 javascript design-patterns
我正在尝试为一个具有昂贵的初始化过程的对象编写OO 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();
});?
Run Code Online (Sandbox Code Playgroud)
jsFiddle 我在这里缺少什么?
这应该是一个简单的解决方案.首先,确保在将this对象设置为当前对象的情况下调用回调
function foo(callback) {
// do slow initialization here..
callback.call(this);
};
Run Code Online (Sandbox Code Playgroud)
然后调整你的回调方式
var f = new foo(function() {
this.doStuff();
});?
Run Code Online (Sandbox Code Playgroud)
这是你的更新小提琴
| 归档时间: |
|
| 查看次数: |
7386 次 |
| 最近记录: |