Есть замыкания:
(function () {
// do something
})()
(function () {
// do another thing
}) ()
Как бы вы организовали взаимодействие между объектами в этих замыканиях?
Собственно, вопрос возникает при использовании jQuery в больших проектах… вот есть, к примеру, диалоговое окно на jQuery UI. Но это как бы частный случай общей проблемы.
Обычно у меня это выглядит так:
<div id="dialog">
<p>something</p>
</div>
<button id="show_dialog_btn">Show Dialog</button>
<script>
jQuery(function ($) {
$("#dialog").dialog({
куча параметров,
ну просто тьма всяких настроек
и разные колбэки,
buttons: {
OK: function () {
// что-нибудь родить....
}
}
});
$("#show_dialog_btn").click(function () {
$("#dialog").dialog('open');
});
});
</script>
Диалоговое окно в этом случае, фактически состоит из НТМЛ разметки и джаваскрипт кода. Для простоты опустим ЦСС. Теперь, чтобы создать это же окно на другой странице, нужно либо копировать либо… А вот тут начинаются сложности… Если параметры окна зависят от каких-либо параметров в текущем замыкании, Допустим оно по нажатию кнопки Ок, должна быть вызвана «местная» для замыкания функция. Как быть?