Widget オブジェクトを作成する Factory クラスがあります。Factory オブジェクトは、後で Widget オブジェクトの「プライベート メソッド」をコールバックして、何らかの ajax 情報を渡す必要があります。これまでのところ、私が思いついた唯一の実装は、プライベート メソッドをファクトリに返す Widget にパブリック メソッドを作成し、それ自体を削除することです。Factory は、プライベート メソッドへのポインタを保持しながら、新しい Widget を返します。 . 簡単な例を次に示します。
function Factory()
{
var widgetCallback = null;
this.ajaxOperation = function()
{
//some ajax calls
widgetCallback('ajaxresults');
}
this.getNewWidget = function()
{
var wid = new Widget();
widgetCallback = wid.getCallback();
return wid;
}
function Widget()
{
var state = 'no state';
var self = this;
var modifyState = function(newState)
{
state = newState;
}
this.getState = function()
{
return state;
}
this.getCallback = function()
{
delete self.getCallback;
return modifyState;
}
}
}
私が求めている効果を達成するためのより良い方法はありますか、それともこれはかなり合理的なアプローチですか? 私はそれが機能することを知っていますが、注意すべき落とし穴に足を踏み入れているかどうかに興味があります。