将全局javascript数组传递给另一个函数

时间:2014-06-24 06:50:23

标签: javascript arrays global-variables

我有一个小的javascript,它有一个全局声明的数组。该数组的值填充在函数foo()中,如下所示:

<html>
<head></head>
<body>
 <script>
    var myArray = [];

  function foo() {
     var j = 5;
      for (var i = 0; i < j; i++) {
         myArray.push(i+1);
       }  
    }

  function bar() {
   alert(myArray);
   }

 </script>
</body>
</html>

当我尝试在另一个javascript函数bar()中访问该数组时,数组的值为null。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

您已定义该功能但从未调用过它。

尝试像这样调用foo()bar()

  var myArray = [];

function foo() {
   var j = 5;
    for (var i = 0; i < j; i++) {
       myArray.push(i+1);
     }  
  }

function bar() {
  alert(myArray);
 }

 foo();

 bar();

JSFiddle

答案 1 :(得分:1)

如果你打算直接打电话给bar()。

<script>

  function foo(myArray) {

          var j = 5;

          for (var i = 0; i < j; i++) {

              myArray.push(i+1);

          }  

         return myArray;
  }

  function bar() 
  {
       alert(foo([]));
  }

  bar();  

// or

  alert(foo([]));

 </script>

尽量避免使用尽可能多的全局变量,