Две одинаковые функции одна работает одна нет - PullRequest
0 голосов
/ 22 мая 2018

Я создал две функции, 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 = [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

Ответы [ 3 ]

0 голосов
/ 22 мая 2018

Я думаю, что вы хотите aryVarABi[0] = 5;, а не aryVarAbi[0] = 5;

Буква «b» в последнем случае является строчной.

0 голосов
/ 22 мая 2018

Переменные Javascript чувствительны к регистру, поэтому aryVarABi отличается от переменной aryVarAbi .

Пожалуйста, измените строку aryVarAbi[0] = 5; на aryVarABi[0] = 5;.

0 голосов
/ 22 мая 2018

JavaScript чувствителен к регистру.Вы определили var aryVarABi = [1,1,1,1];.Обратите внимание на заглавную букву B. Вы имеете в виду aryVarAbi[0] = 5;.Обратите внимание на строчную букву b.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...