Dank this awesome answer konnte ich etwas wie ein Singleton-Muster in meine JavaScript-Anwendung (einzelne Seite) einfügen. Leider habe ich immer noch Probleme damit zu verstehen, wie das eigentlich funktioniert. Dies könnte damit zusammenhängen, dass ich nicht wirklich verstehe, wie ein Anruf im Detail funktioniert.JavaScript: Modul-basierte Singleton-Muster verstehen
die verknüpfte Antwort zu zitieren:
Das erste an das Modul erfordert es laden und exportieren. Ein anderes Modul, das Ihr Singleton erfordert, wird nur das bereits exportierte verwenden.
(zitiert nach wie vor)
define(function (require) {
var singleton = function() {
return {
...
};
};
return singleton();
});
So ist der Prozess wie folgt ist, nur um sicher zu machen ich es verstanden. Wenn etwas falsch ist, korrigieren Sie bitte die Prozessbeschreibung.
In Modul A
ziehe ich das Singleton-Modul.
Innerhalb dieses Moduls, eine Funktion, die ein Objekt zurückgibt definiert ist. Der Rückgabe-/Exportwert des Moduls ist das Ergebnis dieser Funktion.
Jetzt im Modul B
, ich auch require
das Singleton-Modul und erhalten Sie das gleiche Objekt, das erstellt wurde, wenn der Singleton zuerst require
d.
Wo leben die Singleton-Daten zwischen dem ersten und dem zweiten?
Ich verstehe einfach nicht, wie diese Objektfreigabe funktioniert, ich habe mir immer die require
als eine Art "virtuelles Einfügen" vorgestellt, aber das scheint ziemlich falsch zu sein. Was passiert eigentlich?