Moduł ładowania raz, wymaga przykładów

Już zadałem podobne pytanie:Requirejs, co to znaczy „Requirejs ładuje każdy moduł raz”
ale w tym temacie nikt nie odpowiada na główne pytanie, ponieważ zapytałem w niewłaściwy sposób.

Podam więc kilka prostych przykładów, aby pokazać, co mam na myśli:

Counter.js modułu

1:    define([], function() {
2:        console.log("Executing counter");
3:        var counter = 0;
4:   
5:        return {
6:            increment: function() { counter++; },
7:            get: function() { return counter; }
8:        };
9:    });

Moduł test1.js

1:    define(['counter'], function(counter) {
2:        console.log("Executing test1");
3:        counter.increment();
4:    });

Moduł test2.js

1:    define(['counter'], function(counter) {
2:        console.log("Executing test2");
3:        counter.increment();
4:    });

Main.js

1:    require(['test1', 'test2', 'counter'], function(test1, test2, counter) {
2:        console.log("Executing main");
3:        alert(counter.get());
4:    });

Więc moduł main.js jest punktem wejścia aplikacji, która najpierw załaduje zależności „test1”, „test2” i „licznik”. (Wykonywanie zamówienia: licznik wykonawczy, wykonanie testu1, wykonanie testu2, wykonanie główne)

Jeśli więc rozumiem zdanie „Requirejs ładuje każdy moduł raz”, oznacza to, że wykonywany będzie kod (na przykład counter.js) z linii od 1 do 9TYLKO RAZ poza tym, że test1, test2 i główny moduł mają licznik na liście zależności? Jeśli to prawda,test1 jest „ładowany” do wykonania modułu licznika? A jeśli to prawda, po wykonaniu licznika w pamięci będzieTYLKO JEDEN obiekt, który zostanie zwrócony z licznika? Kiedy licznik obciążenia test2 otrzyma JEDEN obiekt? (w innym słowie test2 nie wykona ponownie kodu z licznika ani głównego, będą używać istniejącego obiektu licznika)?Więc, czy tworzę tutaj SINGLETON?

W końcu wszystkie moduły mogą wpływać na wartość licznika (na początku, licznik = 0) poprzez funkcje (przyrost, get) zamknięcia?Zamknięcia będą żywe, podczas gdy obiekt licznika istnieje w pamięci?

questionAnswers(1)

yourAnswerToTheQuestion