次のモジュールがあり、両方とも拡張 可能な複数のファイルに分割されているとしますskillet
。
File1.js:
(function(){
var privateVar1 = 0;
var privateFunction1 = function() {
//function definiton
};
skillet.fry() = function() {
//fry it
//matchbox.light();
};
})(window.skillet = window.skillet || {});
File2.js:
(function(){
var privateVar2 = 0;
var privateFunction2 = function() {
//some private function
};
skillet.grillIt = function() {
//grill It
//matchbox.strike(); <-- Shared with File1.js
};
})(window.skillet = window.skillet || {});
またはにバインドされることなくmatchbox
、2つのモジュールで共有できるような共有変数/オブジェクトを持つことは可能ですか?つまり、の可視性はFile1.jsとFile2.jsに対してのみであり、他の場所からアクセスできないようにする必要があります。それが可能かどうかは疑問ですが、JavaScriptでそのような動作を実現する方法はありますか?そうでない場合、この点で使用するベストプラクティスは何ですか?window.matchbox
window.skillet.matchbox
matchbox
(これは、関連するモジュールのセット間でイベントバスを共有し、そのバスをグローバルに公開しないようなものです)