js的全局变量的问题
我在A.js中定义一个数组,然后想在B.js中读取这个数组中的值,但是没法读取到。
A .js中的代码:
var positions = new Array();
function OnLButtonUp() {
try {
var SGWorld = _$SGCreateTEObj();
var pos = SGWorld.Navigate.GetPosition(3);
positions.push(pos);
//alert(positions.length);这里用alert调试的话,数组的值是有的
}
catch (e) {
alert('温馨提示:' + 'OnLButtonUp()方法存在'+e.name+'异常, '+e.message);
}
}
B.js中想读取:
var j = 0;
function GetBack() {
debugger;
var SGWorld = _$SGCreateTEObj();
var stepLength = positions.lenght - 1;//这里报错,说positions没有定义
if (j < positions.length) {
SGWorld.Navigate.JumpTo(positions[stepLength - 1 - j]);
j++;
}
}
之前我也遇到过这样的问题。发现全局变量不起作用。这是什么原因呢?是我var positions = new Array();这个定义的不对吗?
------解决方案--------------------我也遇到过这样的问题
你先
var a,b;//声明;
再写一个function func(){
a=new Array(); //声明;
}
最后在<body onload="func()">加载这个函数;
原因:你的a,b在全局变量赋的值还没有加载,这样你查找到的结果是null,你先声明在赋值 将赋值在加载以后,就可以解决了,因为加载的顺序问题;