0

Как именно оценивается модуль в синтаксисе `import` ES6?

251

Проблема с множественной инициализацией модуля в ES6

У меня есть четыре модуля: A, B, C и D.

В модуле A я объявил следующий код:

console.log("A evaluated")
function AClass() {
  console.log("A constructor")
}
var aObj = new AClass()
export default aObj;

В модуле B я импортирую объект aObj из A:

import aObj from A
export default "B"

В модуле C также происходит импорт aObj из A:

import aObj from A
export default "C"

В модуле D я импортирую модули B, C и A:

import b from B
import c from C
import aObj from A

Вопрос: когда модуль D будет оцениваться, сколько раз в консоль будет выведено сообщение "A evaluated" и "A constructor"?

Это поведение описано в стандарте ES6? Что мне делать, если я хочу, чтобы модуль оценивался ТОЛЬКО ОДИН РАЗ вне зависимости от того, сколько раз он импортируется напрямую или косвенно? Есть ли идеи по этому поводу?

0 ответ(ов)

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь