在javascript中访问全局变量的问题

时间:2011-07-06 18:29:00

标签: javascript

我正在研究谷歌地图,我需要创建一个项目数组。这是我的伪代码:

<script>
var myvar=new array();

function initialize(){
   for i=1 to 10
   {  
        callAnotherFunct(i);
   }

   access myvar() here; 
}


function callAnotherFunct(i){
    myvar=array_element_i;
}

</script>

我期待myvar表现为全局变量,但事实并非如此。我无法在initialize()中获取myvar的任何值。

我在这里做错了什么?

6 个答案:

答案 0 :(得分:2)

伪schmeudo。

var myvar = [];

function initialize(){
   for (var i=0; i < 10; i++)
   {  
        callAnotherFunct(i);
   }

   alert(myvar[0]);
   alert(myvar[9]);
}


function callAnotherFunct(i){
    myvar[i]=i + 'pseudo-schmeudo';
}

initialize();

Fiddle-schmiddle

答案 1 :(得分:1)

小提琴:http://jsfiddle.net/AKKHB/

似乎没问题

答案 2 :(得分:1)

用伪代码很难说出你可能做错了什么。

我已经对您的代码进行了解组,并且工作正常:

var myvar=new Array();

function initialize(){
  for (i=1; i < 10; i++)
  {  
    callAnotherFunct(i);
  }
  alert(myvar);
  //access myvar() here; 
}

function callAnotherFunct(i){
  myvar.push(i);
}

当你调用initialize()时 - 它将以1,2,3,4,5,6,7,8,9

发出警告

希望有所帮助

答案 3 :(得分:1)

我不确定您要完成的任务,但我能够进行多次修改,并且能够在此示例中访问全局变量:http://jsfiddle.net/pKU6A/

var myvar=new Array(); //Array should be uppercase

function initialize(){
   for (var i=1; i < 10; i++) //incorrect for loop syntax
   {  
        callAnotherFunct(i);
   }

  alert(myvar);
}


function callAnotherFunct(i){
    myvar[i] = i; //local variable was not defined and index of array must be assigned
}

initialize(); //needed to call global function to kick it off

答案 4 :(得分:0)

window.myvar = []; // don't use new Array()

function initialize(){
   for i=1 to 10
   {  
        callAnotherFunct(i);
   }

   //window.myvar or myvar here should work
}

答案 5 :(得分:0)

我猜这是一个命名空间问题。做这样的事情

window.project = window.project || {};
project.vars = project.vars || {};

Then you will have a namespace declaration, so you can do

project.vars.myVar = new Array();

这是我能想到的唯一问题