Получить доступ к функции из разных областей - родной js - PullRequest
0 голосов
/ 30 сентября 2018

Что я предположил сделать, чтобы получить доступ к функции из другой области.Я хочу вернуть вызванную функцию из другой области.

Код:

function a (language) {
  if(language === 'pl'){
    return 'it works';
  } else {
    return 'not working';
  }
}

function b (language) {
  function downloadAjax (lang) {

    //How I can get access to a function?
    return a(language);  
  }
  downloadAjax(language);
}


//main function
function c () {
  console.log(b('pl'));
}

c();

Говоря о функции b, которая предполагает возврат вызванной функции .В настоящее время ведение журнала не определено.

Пробовал с:

//global scope
var self = this;
//function scope
return this.a(language)

//binding this
return a.call(this, language)

, но все еще не работает.

Ответы [ 2 ]

0 голосов
/ 30 сентября 2018

Что у вас работает, функция с имеет доступ ко всем этим функциям, когда она выглядит в глобальной области видимости.Вам не хватает явного возврата из вашей второй функции.

function b (language) {
  function downloadAjax (lang) {

    //How I can get access to a function?
    return a(language);  
  }

  // return missed here
  return downloadAjax(language);
}
0 голосов
/ 30 сентября 2018

Вы регистрируете возвращаемое значение b, но функция b не имеет return оператора .

Если вы хотите вернуть результат downloadAjax(language) изb тогда вам нужно сделать это явно: return downloadAjax(language).

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