Сведения о вопросе

krutoi

21:06, 1st October, 2020

Теги

Взаимодействие между замыканиями в JavaScript?

Просмотров: 326   Ответов: 2

Есть замыкания:

(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>



Диалоговое окно в этом случае, фактически состоит из НТМЛ разметки и джаваскрипт кода. Для простоты опустим ЦСС. Теперь, чтобы создать это же окно на другой странице, нужно либо копировать либо… А вот тут начинаются сложности… Если параметры окна зависят от каких-либо параметров в текущем замыкании, Допустим оно по нажатию кнопки Ок, должна быть вызвана «местная» для замыкания функция. Как быть?



  Сведения об ответе

FAriza

13:30, 29th August, 2020

Вам помогут data, bind и triggerHandler. Ну и моя статья :)


  Сведения об ответе

SILA

00:59, 5th August, 2020

Простейший вариант:

var common = {

    param1: 'value1',

    param2: 'value2',

    param3: 'value3',

}


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться