MC-XOBAHCK, там не обязательно регистрироваться.
var fst_var=1;
(function(){//Это ваша jq ready function «$(func)»;
var sec_var=2;
(function(){//Это ваш .nameShip event listener
var thd_var=3;
alert('Second function');
alert(fst_var);//1
alert(sec_var);//2
alert(thd_var);//3
})();
alert('First function');
alert(fst_var);//1
alert(sec_var);//2
alert(typeof thd_var);//undefined
})();
alert('Outside');
alert(fst_var);//1
alert(typeof sec_var);//undefined
alert(typeof thd_var);//undefined
Из "вложенной" области видимости (ОВ) можно взаимодействовать с переменными из "родительской" ОВ, из родительской же ОВ взаимодействовать с переменными из дочерних ОВ нельзя независимо от того была ли дочерняя функция уже воспроизведена или нет.
Для того, чтобы реализовать вами задуманное нужно просто объявить необходимые переменные в родительской области видимости, а их заполнение производить во вложенных функциях/ОВ.
Надеюсь я смог внести хоть какую-то ясность.