Если вы переопределите переменную в функции, например:
var blub = ..
function xyz() {
var blub = ....
}
, вы создадите новую переменную blub в контексте / видимости в функции.Анализатор js не знает, что вы хотите получить доступ к первой определенной переменной blub, и ищет ближайший контекст для переменной blub и сначала находит blub внутри функции.Поэтому переименуйте переменную внутри функции в что-то вроде:
var blub = ..
function xyz() {
var blub2 = ....
var blub_ = ...
var blub_inner =
}
, и вы получите доступ к обоим