对象指针突然变得不确定

时间:2013-04-24 09:20:39

标签: javascript arrays object undefined

是否已知Javascript突然发现对象指针未定义而没有任何警告?

我将三个对象指针数组传递给一个函数,在调用另一个函数后,其中一个作为参数提供,另一个函数在调用后变为未定义。

我也尝试将那个传递给另一个函数,并检查每一步是否发生任何事情,但是在该函数返回控件之前没有任何反应(返回另一个对象引用数组已经构建在那个功能)。

我还尝试克隆它并在调用后从克隆中复制,结果仍未定义。最奇怪的是,我试图再次构建它,在调用所提到的其他函数之后插入对它所构建的函数的调用。还是一样。

发生这种情况的功能如下。请注意调用绘图之前和之后的相同警报。第一个起作用,另一个起作用。

function play(skaters,nations,distances)
{
    var pairs = [];
    for(i=0;i<distances.length;i++)
    {
    alert(distances[i].value + ' ' + distances[i].unit + ':');
    pairs = drawing(skaters,i);
    try{
    alert(distances[i].value + ' ' + distances[i].unit + ':');
    } catch(err) {alert(err.message)}
    for(j=0;j<pairs.length;j++) 
    displayPair(pairs[j],distances[i],skaters,nations);
//  displayDistance(distances[i],skaters,nations);
    }
//  displayFinal(nations); 
}

1 个答案:

答案 0 :(得分:1)

ij均未使用var关键字声明,这意味着ij成为全局范围内的变量而非局部变量(假设你没有在其他地方宣布它们,我们只是没有在这里看到它,但这似乎不太可能)。如果drawing修改了i,则可能会导致您遇到的问题。

没有看到你的其余代码(特别是drawing函数及其调用的任何东西),这是不可能的,但使用var关键字来声明变量将是一个良好的开端方向。