javascript - вызов функции, не передающей параметр - PullRequest
0 голосов
/ 26 июня 2018

Вырвал мои волосы !!

У меня есть следующий фрагмент кода, подобный этому:

function checkCountry(countrycode)
{
    //var countrycode="GB";
    var country = getCountry(countrycode);
    alert("checkCountry: country = "+country);


}

function getCountry(countrycode)
{
    var len = arguments.length;
    alert("getCountry: len = "+len);
    alert("getCountry: countrycode = "+countrycode);
    return countrycode;
}

checkCountry () вызывается из другой функции js.

Проблема в том, что что бы я ни передавал getCountry () из checkCountry (), код страны в getCountry () всегда является пустой строкой.

Я попытался передать строковые литералы, то есть "ГБ"; Я попытался изменить имя функции getCountry (); Я переместил getCountry () в тот же файл js, что и checkCountry ().

arguments.length в getCountry () представляется пустой строкой из оповещения, которая показывает 'getCountry: len ='; Я думал, что это будет 0 или «неопределенный».

Когда я перемещаю код getCountry () в checkCountry (), он работает! Но мне нужно / хочу, чтобы getCountry () можно было повторно использовать.

Не удалось найти ответ на предыдущие вопросы, но я извиняюсь, если он где-то там есть.

Ответы [ 2 ]

0 голосов
/ 26 июня 2018

В кодах нет ничего плохого:

function checkCountry()
{
    var countrycode="GB";
    var country = getCountry(countrycode);
    alert("checkCountry: country = "+country);
}

function getCountry(countrycode)
{
    var len = arguments.length;
    alert("getCountry: len = "+len);
    alert("getCountry: countrycode = "+countrycode);
    return countrycode;
}

Можете ли вы проверить, есть ли что-то не так в проекте / среде Есть ли способ дублировать / заменить имя функции в другом месте вашего проекта? Вы можете установить оповещение на каждом шаге функций, а затем вызвать checkCountry () и посмотреть, откуда он идет не так, как надо.

Ps- в моем окружении я скопировал 2 функции и вызвал Функция checkCountry () (например, при нажатии кнопки). Каждый раз, когда я получал 3 предупреждения, показывающие следующие значения:

getCountry: len = 1
getCountry: countrycode = GB
checkCountry: country = GB

Так что проблема в другом.

0 голосов
/ 26 июня 2018

Вы создаете две функции, но не вызываете ни одну из них. Например, если вы выполняете checkCountry () самостоятельно или вызываете его, вы получаете то, что хотите.

checkCountry();

OR

(function checkCountry()
{
    var countrycode="GB";
    var country = getCountry(countrycode);
})();

Вы можете достичь того, что вы хотите, как это:

var x = {};
x.checkCountry = function(){
    var countrycode="GB";
    var country = getCountry(countrycode);
}

x.getCountry = function(countrycode){
    var len = arguments.length;
    alert("getCountry: len = "+len);
    alert("getCountry: countrycode = "+countrycode);

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