1

次のように配列をグローバルに宣言しました。

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

ほとんどすべてlogin_check()が私のエンジンの関数から継承されています。問題は、関数で使用するときに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 はグローバル配列の設定を許可しないのですか?

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

グローバルを作成するにはObjects/Variables、関数ブロックの外側で宣言する簡単な方法を使用できます

サンプル

var test;
var sel;

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

お役に立てれば!

于 2012-10-17T03:47:19.293 に答える
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 に答える