gpt4 book ai didi

javascript - 调用嵌套在 var Javascript 中的私有(private)函数

转载 作者:行者123 更新时间:2023-11-30 18:00:01 25 4
gpt4 key购买 nike

我想重写一个文件以合并公共(public)和私有(private)变量。我正在尝试做这样的事情:

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 is undefined”错误。我认为将 getPrivFunc 移到 PubObj 之外可以工作,但我遇到了同样的问题。调用 PrivateFunc 也会出错。我觉得这是一个愚蠢的错误,我只是没有看到它。

也许有更好的方法来做到这一点?

最佳答案

任何用 var 声明的东西在它声明的函数之外是不可访问的。你可以做类似下面的事情。需要牢记的重要一点是,您的 var 出现的位置定义了它们声明的范围。

var PubObj;
(function() {
PubObj = {
someVar: 1,

publicFunc: function(param) {
_iAmPrivate(this.someVar, param);
_soAmI(param);
}
};

//Inner Functions
var _iAmPrivate = function(param, args) {
//code
};

var _soAmI = function(param) {
//code
};
})();

关于javascript - 调用嵌套在 var Javascript 中的私有(private)函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17242608/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com