У меня проблемы с выяснением ваших намерений в сценарии. однако и в любом случае ....
нет, var допустимо в пределах его " общего назначения " so " в дереве его функций и подфункции". Таким образом, вы не найдете его, потому что создаете новую ситуацию, и эта переменная будет потеряна, если не будет передана между параметрами.
Если вы используете let , это еще хуже, потому что действует только в этой функции и не имеет доступа к подфункциям, если не передан в качестве параметра.
Во всем этом вы действуете в системе событий ... события аналогичны ajax (создаются только в момент и теряют это событие). их трудно обработать, извлекая данные, не сохраняя их где-либо или не передавая их из функции в другую.
это полезно для понимания: https://dev.to/sarah_chima/var-let-and-const--whats-the-difference-69e
более правильно версия будет выглядеть так:
простая идея (я не проверял ее, но логика c такова)
var XXX;
document.addEventListener("DOMContentLoaded", XXX => {
XXX = new IPageInit();
doSomething(XXX);
}, false);
function doSomething(myval) {
alert(myval); // now have XXX here
}
Итак ... ххх перешел в успех события => и передано doSomethig.
или ...
document.addEventListener("DOMContentLoaded", () => {
var XXX = getaval();
doSomething(XXX);
}, false);
function getaval() {
return IPageInit(); // now have XXX here
}
function doSomething(myval) {
alert(myval); // now have XXX here
}
Итак ... при событии => получить или сделать то, что у вас есть. если у вас ничего нет ... получите.
Надеюсь, я был вам полезен хоть немного.