私は「フレームワーク」を開発しており、モジュールを作成していることに気づきました。
各モジュールには、共通の初期化規則のセットと関数の共通セットが存在します。
STEP 1. コンストラクター関数:
var ns = "namespace1";
t.scenarios[ns] = function (container, instanceName, options) {
// common for all scenarios, e.g. options initialization
t.core.defaultScenarioConstructor(this, ns, container, instanceName, options)
// things only for NAMESPACE1
this.PROPERTY1 = 1;
}
STEP 2. (質問関連) プロトタイプができました
var p = t.scenarios[ns].prototype;
p.newfunction = function(){
this.PROPERTY1; // accessible
}
THINGS_ONLY_FOR_NAMESPACE1 でいっぱいになります
t.core.defaultScenarioPrototype(p);
STEP 3 / 4. クラスのインスタンス化 (new キーワードを使用) & dom ビルダーの呼び出し
p.initNewView = function(container) {/* build dom and assign handlers*/}
ここで質問です...他の「コア」モジュール内で共通のコンストラクター/プロトタイプの初期化を行いたいと思います。STEP 2 で関数をプロトタイプに追加すると、"this" キーワードがあり、PROPERTY1 などの CURRENT_INTANCE フィールドにアクセスできます。
ただし、プロトタイプが「defaultScenarioPrototype」ビルダーに変数として渡される場合、すべての関数には、ビルダーが存在する CORE クラスの「this」がもう 1 つあります。
別のモジュールからプロトタイプに「共通」関数を追加するにはどうすればよいですか?