哪个更好的JavaScript练习?

时间:2011-03-10 14:47:31

标签: javascript performance

案例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的属性。我想让你建议我哪种方式更好,特别是在记忆和性能方面,你也可以评论任何其他参数。

1 个答案:

答案 0 :(得分:1)

case2会慢一点,因为每次使用变量时,解释器必须执行两个步骤(1:解析属性,2:访问值)。但差别是微不足道的。在这种情况下,我认为case1更可取,因为它需要更少的输入。

顺便问一下,你为什么这样称呼'_global'?我的意思是,支持私有变量和函数是对的,对吧?这就是下划线的原因。