私はJavascriptモジュールのパターンについてthis記事を読んで、あなたはモジュールのファイル間でプライベート変数/関数を維持し、互いからそれらにアクセスすることができます主張スニペットに出くわしたんだ:Javascriptモジュールパターンでプライベート関数/変数を使用するにはどうすればよいですか?
var MODULE = (function (my) {
var _private = my._private = my._private || {},
_seal = my._seal = my._seal || function() {
delete my._private;
delete my._seal;
delete my._unseal;
},
_unseal = my._unseal = my._unseal || function() {
my._private = _private;
my._seal = _seal;
my._unseal = _unseal;
};
// permanent access to _private, _seal, and _unseal
return my;
}(MODULE || {}));
私は少し混乱していますどのように私がこれを実装するかについては、しかし、私はその混乱の大部分は、これがどのように動作するかを理解していないからだと思います。すでにロードされている他のスクリプトがこれらの内部値を利用するにはどうすればよいですか?そして、この「プライベート」空間内に関数と変数を追加するにはどうすればよいですか?
私の最終目標は、サブモジュールでオーバーライドする必要があるが、依然としてベースモジュールのファイルで参照される必要がある、ある種の「抽象的な」関数変数を提供することです。確かに私はこれほど多くはプレイしていないが、それは主に実際の実装がどのように動作するかを頭に入れているからだ。
私は、次のようなものを考えていたが、それは内部の機能にアクセスすることができないように動作するようには思えない。
// Preserve state of private variables/functions across modules
var _private = my._private = my._private || {},
_seal = my._seal = my._seal || function() {
delete my._private;
delete my._seal;
delete my._unseal;
},
_unseal = my._unseal = my._unseal || function() {
my._private = _private;
my._seal = _seal;
my._unseal = _unseal;
};
my._private._unseal();
my._private.bindEvents = function() {
alert("This function should be re-declared in your sub-module.");
};
my._private._seal();
感謝を事前に。