以下に示すように、Revealing Module パターンを使用する 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 パターンに作り直すことができ、期待どおりに機能します。私の質問は、RMP を使用してこれを機能させることができるか、それともこのパターンの単なる制限ですか?
ありがとう、ロジャー