Wie wird ein Modul in der `import` -Syntax von ES6 genau ausgewertet?
Nehmen wir an, wir haben vier Module,A
, B
,C
undD
In ModulA
:
console.log("A evaluated")
function AClass {
console.log("A constructor")
}
var aObj = new AClass()
export default aObj;
In ModulB
:
import aObj from A
export default "B"
In ModulC
:
import aObj from A
export default "C"
In ModulD
:
import b from B
import c from C
import aObj from A
So wenn ModulD
wird ausgewertet, wie oft wird dasA evaluated
undA constructor
in der Konsole gedruckt werden?
Ist dieses Verhalten in @ beschriebe ES6 Standard? Was kann ich tun, wenn ein Modul NUR EINMAL ausgewertet werden soll, unabhängig davon, wie oft es direkt oder indirekt importiert wird? Hat jemand irgendwelche Ideen dazu?