Кажется, что при использовании следующего шаблона модуля javascript невозможно иметь взаимозависимые модули:
var AA = (function(module, BB){
module.sayHello = function(){
alert("AA: hello!");
};
module.pokeYourFriend = function(){
BB.sayHello();
};
return module;
})(AA || {}, BB);
var BB = (function(module, AA){
module.sayHello = function(){
alert("BB: hello!");
};
module.pokeYourFriend = function(){
AA.sayHello();
};
return module;
})(BB || {}, AA);
> AA.pokeYourFriend();
*TypeError: Cannot call method 'sayHello' of undefined*
вышеописанное не выполняется, поскольку BB не существует во время создания AA.
Есть шаблон, который позволяет это, или взаимная зависимость должна быть запрещена?