案例A
(function(){
//this is to access this a property "PublicItem" from outside this closure
window.PublicItem=function(){
//codes
}
//internal variables
var _varA,_varB,_varC,_varD;
//internal functions
function _internalFunc1(){}
function _internalFunc2(){}
function _internalFunc3(){}
})();
案例B
(function(){
//this is to access this a property "PublicItem" from outside this closure
window.PublicItem=function(){
//codes
}
//this variable will hold all internal variables and methods
var _global={};
//internal variables to hold all other internal variables
_global._varA="something for a";
_global._varB="something for b";
_global._varC="something for c";
//internal functions
_global._internalFunc1=function (){}
_global._internalFunc2=function (){}
_global._internalFunc3=function (){}
})();
两种情况之间的区别在于案例A 我已根据需要创建了多个变量/函数。在 case2 中,我创建了一个名为_global
的变量,并且为了创建任何内部变量/函数,我使其成为_global
的属性。我想让你建议我哪种方式更好,特别是在记忆和性能方面,你也可以评论任何其他参数。
答案 0 :(得分:1)
case2会慢一点,因为每次使用变量时,解释器必须执行两个步骤(1:解析属性,2:访问值)。但差别是微不足道的。在这种情况下,我认为case1更可取,因为它需要更少的输入。
顺便问一下,你为什么这样称呼'_global'?我的意思是,支持私有变量和函数是对的,对吧?这就是下划线的原因。