Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вопрос по модулям javascript (https://javascript.ru/forum/misc/81014-vopros-po-modulyam-javascript.html)

igogo333 14.09.2020 04:24

Вопрос по модулям javascript
 
Есть такой код:

//module1.js
export class c1 {
 f1() { console.log("class1 f1") }
}

//module2.js
import { c1 } from "./module1.js"
export class c2 {
 f2() { console.log("class2 f2"); c1.f1(); }
}

//module3.js
import { c1 } from "./module1.js"
import { c2 } from "./module2.js"
 class c3 {
 f3() { 
    console.log("class3 f3"); 
    c1.f1();
    c2.f2();
  }
}


Модуль2 использует функцию из модуля1
Модуль3 использует функции из модуля1 и модуля2
Получается так что модуль1 импортируется и в модуль2 и в модуль3

Нужно ли этого избегать, а если нужно, то как?
Что получится, если модуль1 будет очень большим, а импортировать его надо будет в очень многие модули?

Заранее спасибо за помощь.

voraa 14.09.2020 06:40

Избегать ничего не нужно. Он все равно скачается с сервера только один раз. И в памяти будет размещен один раз.
Просто в модулях, которые импортируют его будут ссылки на соответствующие функции, классы....

Я понимаю, что это только пример.
Так работать ничего не будет

Либо
static f1() { console.log("class1 f1") }

Либо вызывать надо не у самого класса, а у какого либо объекта этого класса
let o1 = new c1()
o1.f1()

Про c2 и f2 - тоже самое.

igogo333 14.09.2020 13:08

Большое спасибо за помощь!


Часовой пояс GMT +3, время: 10:35.