私は、同じモジュールを持つファイル間でjavascriptのプライベート状態の維持について読んでいました。私的な状態を維持する
var Module = (function(){
//Some private variables declared.
// and initialized.
})();
、我々はFILE2を持っている:
たちはFILE1を持っていると言う
var Module = (function(myModule){
//Here the same private variables are required.
// And the following implementation enables it.
var _private = myModule._private = myModule._private || {},
_seal = myModule._seal = myModule._seal || function() {
delete myModule._private;
delete myModule._seal;
delete myModule._unseal;
},
_unseal = myModule._unseal = myModule._unseal || function() {
myModule._private = _private;
myModule._seal = _seal;
myModule._unseal = _unseal;
};
return myModule;
}(Module || {}));
私は理解できませんでした部分は、私がvar _private = myModule._private || {}
が同じことをするだろうと思ったvar _private = myModule._private = myModule._private || {},
ました。上記の方法でなぜそれが行われますか?さらに、deleting myModule._private, myModule._seal and myModule._unseal
はそれ以上の使用のためにアクセス不能にならないでしょうか?しかし、この記事では、モジュールのプライベートな状態を維持することによって、プライベート変数を他のファイルで使用するためのシールを行い、シールを解除すると述べています。このパターンに関するヒントや洞察はありますか?
私が言及していた記事がmyModule._private
を未定義にすることができ、冒頭でthis
2番目のスニペットは何も返しません。どうして 'Module'を' undefined'で上書きしているのか分かりません。 – pimvdb
@pimvdb:それは私の間違いです。私はmyModule – Ajai