我想重写一个文件来合并公共和私有变量。我正在尝试这样做:调用嵌套在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'。 –