在javascript中访问全局变量时出现问题

在javascript中访问全局变量时出现问题,javascript,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; } </scr

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

<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>

var myvar=新数组();
函数初始化(){
对于i=1到10
{  
callAnotherFunct(i);
}
在这里访问myvar();
}
函数callAnotherFunct(i){
myvar=数组元素i;
}
我希望myvar可以作为一个全局变量,但事实并非如此。我无法在initialize()中获取myvar的任何值

我做错了什么?

小提琴:

看起来还行

小提琴:

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

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

   //window.myvar or myvar here should work
}

似乎没问题

很难判断您可能做错了什么-使用伪代码

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

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

   //window.myvar or myvar here should work
}
我已对您的代码进行了去伪修改,效果良好:

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);
}
var myvar=newarray();
函数初始化(){
对于(i=1;i<10;i++)
{  
callAnotherFunct(i);
}
预警(myvar);
//在这里访问myvar();
}
函数callAnotherFunct(i){
myvar.push(i);
}
调用initialize()-时,它将以1,2,3,4,5,6,7,8,9发出警报


希望这会有所帮助

很难判断您可能做错了什么-使用伪代码

我已对您的代码进行了去伪修改,效果良好:

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);
}
var myvar=newarray();
函数初始化(){
对于(i=1;i<10;i++)
{  
callAnotherFunct(i);
}
预警(myvar);
//在这里访问myvar();
}
函数callAnotherFunct(i){
myvar.push(i);
}
调用initialize()-时,它将以1,2,3,4,5,6,7,8,9发出警报


希望这会有所帮助

我不确定您试图实现什么,但我能够进行一些修改,并且能够访问本例中的全局变量:

var myvar=newarray()//数组应为大写
函数初始化(){
for(var i=1;i<10;i++)//循环语法不正确
{  
callAnotherFunct(i);
}
预警(myvar);
}
函数callAnotherFunct(i){
myvar[i]=i;//未定义局部变量,必须分配数组的索引
}
初始化()//需要调用全局函数来启动它

我不确定您试图完成什么,但我能够进行一些修改,并且能够访问本例中的全局变量:

var myvar=newarray()//数组应为大写
函数初始化(){
for(var i=1;i<10;i++)//循环语法不正确
{  
callAnotherFunct(i);
}
预警(myvar);
}
函数callAnotherFunct(i){
myvar[i]=i;//未定义局部变量,必须分配数组的索引
}
初始化()//需要调用全局函数来启动它
伪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();
var myvar=[];
函数初始化(){
对于(变量i=0;i<10;i++)
{  
callAnotherFunct(i);
}
警报(myvar[0]);
警报(myvar[9]);
}
函数callAnotherFunct(i){
myvar[i]=i+‘伪schmeudo’;
}
初始化();
.

伪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();
var myvar=[];
函数初始化(){
对于(变量i=0;i<10;i++)
{  
callAnotherFunct(i);
}
警报(myvar[0]);
警报(myvar[9]);
}
函数callAnotherFunct(i){
myvar[i]=i+‘伪schmeudo’;
}
初始化();

.

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

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

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

project.vars.myVar = new Array();

这是我能想到的唯一问题,我猜这是一个名称空间问题。做这样的事

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

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

project.vars.myVar = new Array();

这是我能想到的唯一问题

我们能看看实际代码吗?这可能有助于发现问题。这是伪代码吗?bc如果这是你的真实代码,它不会做任何事情,这是完全错误的。你如何访问这些值?为什么不发布真实代码?为我们提供一个您一定在真实JavaScript中尝试过的东西的损坏版本背后的想法是什么?
var myGlobalVar={}
然后使用类似于
myGlobalVar.myArray=new Array()
的东西可能是名称空间冲突。我也遇到了同样的问题,使用一个单独的名称空间似乎是可行的:)我们能看看实际的代码吗?这可能有助于发现问题。这是伪代码吗?bc如果这是你的真实代码,它不会做任何事情,这是完全错误的。你如何访问这些值?为什么不发布真实代码?为我们提供一个您一定在真实JavaScript中尝试过的东西的损坏版本背后的想法是什么?
var myGlobalVar={}
然后使用类似于
myGlobalVar.myArray=new Array()
的东西可能是名称空间冲突。我也遇到了同样的问题,使用一个单独的名称空间似乎是可行的:)