首页 新闻 搜索 专区 学院

js的公共变量的读取

0
悬赏园豆:10 [已解决问题] 解决于 2013-08-12 14:55

我在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();这个定义的不对吗?

pengjw的主页 pengjw | 初学一级 | 园豆:3
提问于:2013-06-13 17:06
< >
分享
最佳答案
0

在b.js文件中,调用a.js文件中的方法,之后你得把数组(也就是执行结果)进行返回,即return positions; 这样就行了,你试试,期待你的好消息

收获园豆:7
狂奔的程序猿 | 菜鸟二级 |园豆:244 | 2013-06-15 19:33
其他回答(3)
0

是文件引用顺序问题?

收获园豆:1
顾晓北 | 园豆:10219 (专家六级) | 2013-06-13 17:18

引用的时候我注意到了,我是先引用A.js,后面才是引用B.js。

支持(0) 反对(0) pengjw | 园豆:3 (初学一级) | 2013-06-13 17:20
0

你可以试着将这两个js放在同一个js中,调用同一个js就不会出现问题。

收获园豆:1
迷失的java | 园豆:154 (初学一级) | 2013-06-13 19:20
0

你应该在调用GetBack()方法之前,先调用OnLButtonUp(),这样数组里就会被赋值了。

收获园豆:1
一品带刀侍卫 | 园豆:222 (菜鸟二级) | 2013-06-14 11:13
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册