Importowanie klas z osobnego pliku JS, kiedy wewnątrz wywoływana jest funkcja z głównego pliku

0

Witam,
mam dużo klas w moim kodzie JS. Chciałbym importować je w moim main.js. Problem jest jednak taki, że w kilku z nich w wewnętrznej funkcji odnoszą się do funkcji z mojego głównego pliku. Dokładniej te funkcje tworzą nowy element na stronie i w jego listenerze wywołują funkcje z main.js. Czy jest jakiś sposób, żeby pomimo przechowywanie ich w innym pliku miały dostęp do tych funkcji? Zaczynam z klasami dopiero więc może wywoływanie w nich zewnętrznych funkcji jest błędem?
Można powiedzieć, że wyszedł mi taki paradoks. Jeśli jako pierwszy zagnieżdżę plik main JS to nie będzie miał on dostępu do klas, ale hipotetycznie klasy miałyby dostęp do funkcji, a jeśli najpierw zagnieżdżę klasy to main.js będzie miał dostęp do klas, ale klasy nie będą miały do funkcji.

1

Kolego, w JS nie używa się klas. To, że one tam są to błąd matrixa, nie używaj ich i pisz kod funkcyjnie.

Jeżeli chodzi o twój paradox, to masz jakąś kaszanę w kodzie. Spróbuj te funkcje wydelegować na zewnątrz głównego pliku i importować wszędzie gdzie są potrzebne.

1
Gouda105 napisał(a):

mam dużo klas w moim kodzie JS. Chciałbym importować je w moim main.js. Problem jest jednak taki, że w kilku z nich w wewnętrznej funkcji odnoszą się do funkcji z mojego głównego pliku. Dokładniej te funkcje tworzą nowy element na stronie i w jego listenerze wywołują funkcje z main.js. Czy jest jakiś sposób, żeby pomimo przechowywanie ich w innym pliku miały dostęp do tych funkcji? Zaczynam z klasami dopiero więc może wywoływanie w nich zewnętrznych funkcji jest błędem?
Można powiedzieć, że wyszedł mi taki paradoks. Jeśli jako pierwszy zagnieżdżę plik main JS to nie będzie miał on dostępu do klas, ale hipotetycznie klasy miałyby dostęp do funkcji, a jeśli najpierw zagnieżdżę klasy to main.js będzie miał dostęp do klas, ale klasy nie będą miały do funkcji.

Ale to jest apka w node.js? Bo mówisz Chciałbym importować je w moim main.js to rozumiem ze node?

Czy dodajesz je po prostu do strony HTML?

0

@TomRiddle: czysty js. Widziałem, że jest tam opcja import {} from, która to umożliwia.

1
Gouda105 napisał(a):

@TomRiddle: czysty js. Widziałem, że jest tam opcja import {} from, która to umożliwia.

Ale co to znaczy "czysty"? No uruchmiasz to w node.js czy w przeglądarce, proste pytanie :D Ale domyślam się że w przeglądarce?

A jeśli tak, to wiesz że import {} from działa tylko z modułami, jeśli ustawisz type="module", tylko to jest wspierane przez nieliczne przeglądarki, właściwie takie w miare nowe.

Dokładniej te funkcje tworzą nowy element na stronie i w jego listenerze wywołują funkcje z main.js. Czy jest jakiś sposób, żeby pomimo przechowywanie ich w innym pliku miały dostęp do tych funkcji?

No, możesz. Po prostu zaimportuj jedną klase w jednym pliku, a drugą w drugim. Jeśli nie dotykają tych samych rzeczy to nie powinno być problemu z cyklicznym importem, jeśli jest, to musisz wynieść części wspólne do innego pliku.

1 użytkowników online, w tym zalogowanych: 0, gości: 1