次の Javascript コードがあり、以下に示すようにコールバックを機能させようとしています。「123」が含まれるアラートを表示したい。
var A = function(arg){
this.storedArg = arg;
this.callback = function(){ alert(this.storedArg); }
}
var B = function() {
this.doCallback = function(callback){ callback(); }
}
var pubCallback = function(){ alert('Public callback') };
var a = new A(123);
var b = new B();
b.doCallback(pubCallback); // works as expected
b.doCallback(a.callback); // want 123, get undefined
何が起こっているのか理解していますが、それを修正する方法がわかりません。オブジェクトを参照するコールバック関数を取得するにはどうすればよいですか? 私の場合、A は変更できますが、B は変更できません。