是否已知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);
}
答案 0 :(得分:1)
i
和j
均未使用var
关键字声明,这意味着i
和j
成为全局范围内的变量而非局部变量(假设你没有在其他地方宣布它们,我们只是没有在这里看到它,但这似乎不太可能)。如果drawing
修改了i
,则可能会导致您遇到的问题。
没有看到你的其余代码(特别是drawing
函数及其调用的任何东西),这是不可能的,但使用var
关键字来声明变量将是一个良好的开端方向。