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
Из "вложенной" области видимости (ОВ) можно взаимодействовать с переменными из "родительской" ОВ, из родительской же ОВ взаимодействовать с переменными из дочерних ОВ нельзя независимо от того была ли дочерняя функция уже воспроизведена или нет.
Для того, чтобы реализовать вами задуманное нужно просто объявить необходимые переменные в родительской области видимости, а их заполнение производить во вложенных функциях/ОВ.
Надеюсь я смог внести хоть какую-то ясность.