1

我已经像这样在全局范围内声明了我的数组:

window.onload = function(){
   var test = 'test';
   var sel = new Array();
   login_check();
};

几乎所有东西都继承login_check()自我引擎中的功能。问题是当我在函数中使用它时未设置whilevar test设置。var sel

我在我的函数中使用它:

console.log(test); //displays as intended
if(sel.length > 0){  //ERROR Uncaught ReferenceError: sel is not defined 
 //do something
}

我应该提到 sel 在这一点上通常是空的。JS 是否有些不允许设置全局数组?

4

3 回答 3

1

我建议将变量移到函数之外,例如

var test;
var sel;
window.onload = function(){
    test = 'test';
    sel = new Array();
    login_check();
  };
于 2012-10-17T03:43:18.277 回答
0

而是让它真正全球化:

window.onload = function(){
   var window.test = 'test';
   var window.sel = new Array();
   login_check();
};

函数中:

console.log(window.test); //displays as intended
if(window.sel.length > 0) {
 //do something
}

如果还是同样的问题,可能是这个原因,因为window.sel是空数组,可以认为是null.

尝试另一种方法将变量声明保留在函数之外:

var test;
var sel;
window.onload = function(){
   test = 'test';
   sel = new Array();
   login_check();
};
于 2012-10-17T03:42:04.117 回答
0

要制作Objects/Variables全局,您可以使用在功能块之外声明它的简单方法

样本

var test;
var sel;

window.onload = function(){
   test = 'test';
   sel = new Array();
   login_check();
};

希望这可以帮助!

于 2012-10-17T03:47:19.293 回答