Почему функция не имеет доступ к переменным внешней функции?

112
30 ноября 2020, 04:30
fetchValue = function (callBack){
    var taker = "1";
    callBack();
}

exportValue = function()  {
        alert(taker);
}
fetchValue(exportValue);  //Uncaught ReferenceError: taker is not defined

В чем проблема? Я думал если fetchValue не находит переменную у себя, она ищет ее в exportValue, т.к. это функция-родитель, разве нет?

Answer 1

"Родитель" определяется в момент создания функции, а не в момент вызова.

Таким образом в данном коде две независимые функции не имеющие доступа к локальным переменным друг друга.

Чтобы код заработал, exportValue должна быть объявлена внутри fetchValue

fetchValue = function (){
    var taker = "1";
    var exportValue = function()  {
        alert(taker);
    }
    exportValue();
}
fetchValue(); 
READ ALSO
Как разбить строку с тегами по разделителю?

Как разбить строку с тегами по разделителю?

На сайте вопросов и ответов есть поле для ввода тегов, например

120
Проблема с webpack`ом

Проблема с webpack`ом

Есть файлы: indexhtml Папка script, в которой находятся: index

99
Не могу нормально передать в функцию параметр

Не могу нормально передать в функцию параметр

Не могу понять в чем проблемапри выводе в консоли console

118
Выделить по клику число в месяце

Выделить по клику число в месяце

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

101