在下面的shema中计算

时间:2015-11-02 21:01:39

标签: javascript node.js

   var Ok = {
       defineVars : function ()
       {
           var integerr = 0;
           for(i=0; i<5; i++)
           {
               Ok.countUp(integerr);
           }
       },
       countUp : function (integerr)
       {
           integerr = integerr + 1;

           console.log(integerr);
       }
   }
   Ok.defineVars();

这是一个非常简化的真实代码。解释我的行为需要花费太长时间,但我需要在Ok.defineVars()中将一个变量添加到定义为0的integerr中;

谢谢

1 个答案:

答案 0 :(得分:0)

不幸的是,integerr不是通过引用传递的,所以它始终为0.你可以改变结构以使整数变换为全局变量。两个函数都可以访问的变量:

 var Ok = {
       integerr: 0,
       defineVars : function ()
       {
           for(i=0; i<5; i++)
           {
               Ok.countUp(Ok.integerr);
           }
       },
       countUp : function (integerr)
       {
           Ok.integerr = integerr + 1;

           console.log(Ok.integerr);
       }
   }
   Ok.defineVars();

或利用通过引用传递的对象并执行以下操作:

var Ok = {
       defineVars : function ()
       {
           var integerr = {num:0};
           for(i=0; i<5; i++)
           {
               Ok.countUp(integerr);
           }
       },
       countUp : function (integerr)
       {
           integerr.num = integerr.num + 1;

           console.log(integerr.num);
       }
   }
   Ok.defineVars();