公開モジュール パターンを使用してコードをセットアップしたいと考えています。メインモジュールのプライベート関数にアクセスできるようにサブモジュールをセットアップしたいのですが、これを行う方法に固執しています。
これは、遊んでいるサンプルコードの一部です。
var Module = (function() {
function B(){
console.log("B");
};
return {
//B: B
};
})();
var Module = Module || {};
Module.Utils = (function() {
function C() {
B();
};
return {
C: C
}
}).apply(Module);
Module.Utils.C();
Utils モジュールからプライベート関数を呼び出せるようにするにはどうすればよいですか?
編集:
Jsutを明確にするために、メインモジュールに追加されるサブモジュールを作成できるようにしたいので、それが役立つ場合はサブモジュールもモジュールにすることができます。私はこれを読んでいました: http://www.sitepoint.com/modular-design-patterns-in-javascript/これは apply() を使用して2番目のモジュールを追加しますが、拡張およびプライベート化機能を使用してモジュールをに追加する必要がありますメインのもの。できれば避けたいですよね?
別の編集 要するに、1 つのメイン モジュールと 2 番目のモジュールを、1 つのセクションでのみ使用される新しいファイルに入れたいと考えています。メインモジュールのプライベート関数を引き続き参照できるようにするには、2番目のモジュールが必要です。これは可能ですか?
これが私が言及するコードです:
//protected utility functions
utils =
{
//add properties to an object
extend : function(root, props)
{
for(var key in props)
{
if(props.hasOwnProperty(key))
{
root[key] = props[key];
}
}
return root;
},
//copy an object property then delete the original
privatise : function(root, prop)
{
var data = root[prop];
try { delete root[prop]; }
catch(ex) { root[prop] = null; }
return data;
}
};