我有一些使用显示模块模式的 javascript,如下所示。它接受一个稍后调用的回调函数。我希望该回调函数能够调用类中定义的函数,但它不起作用。
window.MyClass = function() {
var self = this,
start = function (callback) {
callback(self);
},
cancel = function() {
console.log('Cancel invoked');
};
return {
start: start,
cancel: cancel
};
};
var myCallbackFunction = function(instance) {
instance.cancel(); // Error: instance.cancel is not a function
};
var obj = new window.MyClass();
obj.start(myCallbackFunction);
我可以将这个示例重新设计为 Revealing Prototype Pattern 并且它可以按预期工作,所以我的问题是我可以使用 RMP 来实现这个工作,还是只是这个模式的一个限制?
谢谢,罗杰