Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.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/14.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_Function - Fatal编程技术网

Javascript 两个相同的功能一个工作一个不工作

Javascript 两个相同的功能一个工作一个不工作,javascript,arrays,function,Javascript,Arrays,Function,我创建了两个函数,GOODself和BADself,相继调用,以调试我在更大脚本中遇到的问题。我不明白为什么BADself在aryVarAbi[0]=5行暂停 如果我先叫它,它仍然会发生。根据Firefox中的控制台,aryVarAbi未定义 GAB = GOODself(0, 4, 1); GAB = BADself(0, 4, 1); function GOODself(GABin, nCols, nRows) { var aCol = 0; var aryVarABi =

我创建了两个函数,GOODselfBADself,相继调用,以调试我在更大脚本中遇到的问题。我不明白为什么BADself
aryVarAbi[0]=5行暂停

如果我先叫它,它仍然会发生。根据Firefox中的控制台,aryVarAbi未定义

GAB = GOODself(0, 4, 1);
GAB = BADself(0, 4, 1);

function GOODself(GABin, nCols, nRows) {
    var aCol = 0;
    var aryVarABi = [1,1,1,1];
    for (aCol=0; aCol < nCols - 1; aCol++) {
        alert("GOOD1 " + aryVarABi[aCol]);
        aryVarABi[0]= 5;
        alert("GOOD2 " + aryVarABi[aCol]);
    } // for aCol
    return (aryVarABi[0]);
} // GOODself

function BADself(GABin, nCols, nRows) {
    var aCol = 0;
    var aryVarABi = [1,1,1,1];
    for (aCol=0; aCol < nCols - 1; aCol++) {
        alert("BAD1 " + aryVarABi[aCol]);
        aryVarAbi[0] = 5;
        alert("BAD2 " + aryVarABi[aCol]);
    } // for aCol
    return (aryVarABi[0]);
} // BADself
GAB=GOODself(0,4,1);
GAB=BADself(0,4,1);
函数GOODself(GABin、nCols、nRows){
var-aCol=0;
var aryVarABi=[1,1,1,1];
对于(aCol=0;aCol
JavaScript区分大小写。您已经定义了
var aryVarABi=[1,1,1,1]。注意大写字母B。您指的是
aryVarAbi[0]=5。注意小写的b.

我想你想要
aryVarABi[0]=5
aryVarAbi[0]=5相对


后者中的“b”是小写的。

Javascript变量区分大小写,因此aryVarABi与aryVarABi是不同的变量


请更改行
aryVarAbi[0]=5
to
aryVarABi[0]=5

你必须小心大写
aryVarABi
看起来需要定义,但
aryVarABi
没有定义。您所说的“暂停”是什么意思?您会收到错误消息吗。请尝试调试器。调试器应指向问题所在。在第一次警报之后,查看您的坏函数中的
aryVarAbi
。这不是雅瓦拉比。请为变量使用简洁的名称,因为这种命名可能会导致问题。。。就像你得到的。嗨,科林,如果你在谷歌Chrome浏览器中使用类似开发者工具的东西,这很容易发现。当您将上述代码粘贴到控制台时,它会给出答案甚至行号,请参阅:Uncaught ReferenceError:aryVarAbi未在BADself中定义(:20:5)为什么您有同一函数的两个副本?您应该只编写一次函数,然后在需要时调用它。然后你就可以避免这样的问题。