私は数日前に同様の質問をしましたが、私はまだ何か間違ったことをしていると思うので、これはより焦点を当てています:
私が理解している限り、この本によれば、この関数はオブジェクトprivateFunction
の外部からは利用できないと想定されており、この方法でのみ呼び出すことができます。mySingleton
publicFunction
mySingleton.publicFunction
ただし、privateFunctionは、私の意志と意図に反して、オブジェクトの外部で非常に利用可能です。
何故ですか?私は何が間違っているのですか?
var mySingleton = new (function (window, document, undefined) {
var privateFunction = function () {
//code
},
mySingleton = {
publicFunction: function () {
//code
}
};
return mySingleton;
})(window, document, undefined);
編集:私はちょうど問題を見つけました。構文エラー、屈辱的。2行目のセミコロンを見てください。昨夜投稿したときにこの行を見逃しました。
var mySingleton = new (function (window, document, undefined) {
var self = this;
privateFunction = function () {
//code
},
mySingleton = {
publicFunction: function () {
//code
}
}
return mySingleton ;
})(window, document, undefined);
セミコロンをコンマに置き換えると、プライベートメソッドが「再び」プライベートになります。とにかく、このコードを見ると、直後のコンマのために、そのような構文が構文エラーを引き起こすと予想しますprivateFunction
-これはすべて間違っていますか?