我想重寫一個文件來合併公共和私有變量。我正在嘗試這樣做:調用嵌套在var中的私有函數Javascript
var PrivateFunc = (function() {
//Private Functions
var _iAmPrivate = function(param, args){
//code
}
var _soAmI = function(param){
//code
}
return PrivateFunc;
})();
var PubObj = {
someVar: 1,
getPrivFunc: PrivateFunc,
publicFunc: function(param){
//This doesnt work
this.getPrivFunc._iAmPrivate(someVar, param);
//This doesn't either
getPrivFunc._soAmI(param);
}
};
我是「getPrivFunc
未定義」錯誤。我認爲在PubObj
之外移動getPrivFunc
可以工作,但我遇到了同樣的問題。調用PrivateFunc
也會給出錯誤。我覺得這是一個愚蠢的錯誤,我只是沒有看到它。
也許有更好的方法來做到這一點?
* 「我是 」getPrivFunc是不確定*這是因爲'PrivateFunc'是'未定義的「 錯誤」。 '。你實際做的是把變量賦給自己('return PrivateFunc;')。這與'var foo = foo;'是一樣的。但是因爲'foo'('PrivateFunc')從來沒有被賦予不同的值,所以它的值將是'undefined'。 –