如何在函数调用时处理 javascript 中的变量

How the variable in javascripts is treated on function call?

本文关键字:javascript 变量 处理 函数调用      更新时间:2023-09-26

如果我有一个函数,例如其中包含某些变量

  var test = 3; 
  function looper(){
     var testing = 1;
     testing += testing;
  }
  for (var i=0;i<=10,i++){
     looper();
     alert(test);
  }

如果在循环中调用此函数,则每个函数都将获得 2 的测试值,或者它正在更新到上次执行的值? 此外,我可以获取传递给函数的测试变量的值还是需要将其作为参数传递?

除了我可以获取传递给函数的测试变量的值吗 还是需要将其作为参数传递?

是的,请尝试

   var test = 3; 
   function looper(testing)
   {
       testing += testing;
       return testing;
   }
   for (var i=0;i<=10,i++)
   {
       test = looper(test);
       alert(test);
   }

你已经var testing = 1;所以即使循环总是一遍又一遍地首先实例化到1

您应该将其移出函数范围:

  var testing = 3;  // NOT "test" but "testing"!!!!!
  function looper(){
      testing += testing;
  }
  for (var i=0;i<=10,i++){
       looper();
  }
  alert(testing);   // "testing", remember?

变量测试是全局声明的,因此值 3 显示在警报中。在每次调用函数循环器时,变量测试是在不保留先前值的情况下创建的,并以这种方式分配值 1,则在函数调用时测试的值始终为 2。

var test = 3; 
var testing = 1;
function looper(){
     testing += testing;
     return testing;
}
for (var i=0;i<=10,i++){
    test = looper();
    alert(test);
}