Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 对象指针突然变得未定义_Javascript_Arrays_Object_Undefined - Fatal编程技术网

Javascript 对象指针突然变得未定义

Javascript 对象指针突然变得未定义,javascript,arrays,object,undefined,Javascript,Arrays,Object,Undefined,Javascript会在没有任何警告的情况下突然使对象指针未定义吗 我将三个对象指针数组传递到一个函数中,在调用另一个函数(其中一个作为参数提供)后,另一个在调用后变得未定义 我也尝试将该函数传递到另一个函数中,并在每一步检查它是否发生了任何变化,但在从该函数返回控件之前,不会发生任何变化(返回该函数中构建的另一个对象引用数组) 我也尝试过克隆它,并在调用后从克隆中复制回来,但结果仍然未定义。最奇怪的是,我尝试再次构建它,在调用前面提到的其他函数之后插入对构建它的函数的调用。还是一样 发生这种情

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); 
}
功能游戏(溜冰者、国家、距离)
{
var对=[];

对于(i=0;i无论是
i
还是
j
都不是用
var
关键字声明的,这意味着
i
j
都不会成为全局范围内的变量,而不是局部变量(假设您没有在其他地方声明它们,我们只是在这里没有看到,但这似乎不太可能)。如果
绘图
修改了
i
,则可能会导致您看到的问题


没有看到代码的其余部分(特别是
绘图
函数及其调用的任何内容),这很难说,但是使用
var
关键字来声明变量将是一个正确方向的良好开端。

你能发布一些你的代码吗?是的,我认为js不喜欢你。没有代码,你在这里也不会得到太多的爱。不,这不是正常行为。你需要发布一个代码示例原因问题最有可能出现在您的代码或正在使用的库中的某个地方。(在发布之前,请确保该示例确实显示了该行为。)“是否已知Javascript会在没有任何警告的情况下突然取消对象指针的定义?”是的,世界上最流行的语言确实被设计成随意抛出一些变量的值。人们说“没有愚蠢的问题”…嗯,在这里发布这一点点代码显然不是正确的做法。要么Javascript有问题,要么我的整个系统基本上有问题。因为这是我试图用Javascript编写的第一件事,所以概率有点偏向后者。尽管如此,我的系统的构建还是非常顺利直到我遇到了一种完全神秘的行为,到目前为止,这种行为抵制了我尝试过的每一种解决方法,所以这让我感到疑惑。是的!这似乎是个问题。我确实记得在我编程的前几个循环中加入声明,但后来忘记了,因为它们似乎仍然有效。在这一点上,我非常自由正如您可能猜到的,将sh转换为Javascript。感谢您的帮助。很高兴摆脱困境并准备继续。没问题,很高兴它有所帮助。:)