Я новичек в программировании под JS. До этого в основном писал на С под микроконтроллеры, и не сразу получается все понять.
Собственно вопрос вот в чем. Приведу абстрактный код который у меня не работает как надо. Это часть скрипта который загружается в браузере.
//*1
function a()
{
let selectCallback=1;
let gFileList;
a.prototype=
{
setSelectCallback: function(value)
{
selectCallback=value;
}
}
//некоторый код который загружает ресурсы с диска используя промисы
getFilesAndFoldersList(gCurentPath).then((res)=>
{
gFileList=res;
},
function(err)
{
let b=err;
});
}
//*2
window.addEventListener("load",function() {
let b=new a();
b.setSelectCallback(function(a)
{
//do something
let c=a;
});
});
Собственно вопрос в том, что при первом вызове из "*2" в отладчике показывает что у переменной b в прототипе нет метода setSelectсallback. При втором вызове он есть, но когда используется внутри функции a значение selectCallback остается равно 1. Собственно почему? если я проходя по отладке вижу, что значение переменной seleckCallback в функции a меняется на нужный мне обработчик, но когда я пытаюсь использовать значение переменной изнутри функции оно всегда равно 1.
Сильно не пинайте. Возможно я в принципе неправильно все это пытаюсь сделать, но кучу интернета перерыл ответа на вопрос не нашел.