В синтаксисе `import` ES6 как точно оценивается модуль?
Допустим, у нас есть четыре модуля,A
, B
,C
а такжеD
В модулеA
:
console.log("A evaluated")
function AClass {
console.log("A constructor")
}
var aObj = new AClass()
export default aObj;
В модулеB
:
import aObj from A
export default "B"
В модулеC
:
import aObj from A
export default "C"
В модулеD
:
import b from B
import c from C
import aObj from A
Итак, когда модульD
оценивается, сколько раз будетA evaluated
а такжеA constructor
печататься в консоли?
Это поведение описано вСтандарт ES6? Что мне делать, если я хочу, чтобы модуль оценивался ТОЛЬКО ОДИН РАЗ, независимо от того, сколько раз он импортирован прямо или косвенно? У кого-нибудь есть идеи по этому поводу?