全局变量未在onclick中定义?

时间:2012-10-17 03:40:48

标签: javascript

我已经全局声明了我的数组:

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

一切都是从我的引擎中的login_check()函数继承而来的。问题是{I}设置var test时我在函数中使用它时未设置var sel

我在我的函数中使用它:

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

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

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分: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();
};

答案 2 :(得分:0)

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

<强>样品

var test;
var sel;

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

希望这有帮助!