Na sintaxe `import 'do ES6, como um módulo é avaliado exatamente?
Digamos que temos quatro módulos,A
, B
,C
eD
No móduloA
:
console.log("A evaluated")
function AClass {
console.log("A constructor")
}
var aObj = new AClass()
export default aObj;
No móduloB
:
import aObj from A
export default "B"
No móduloC
:
import aObj from A
export default "C"
No móduloD
:
import b from B
import c from C
import aObj from A
Então, quando o móduloD
é avaliado, quantas vezes oA evaluated
eA constructor
ser impresso no console?
Esse comportamento é descrito emPadrão ES6? O que devo fazer se quiser que um módulo seja avaliado SOMENTE UMA VEZ, não importa quantas vezes seja importado direta ou indiretamente? Alguém tem alguma ideia sobre isso?