IlllI
IlllI
IlllI
3
#javascript
Hej, mam dwa moduły w js
var m1 = (function(m2) {
function f1() {
m2.f2();
}
})(m2);

var m2 = (function() {
function f2() {}
return {
f2: f2
}
})();

W tej kolejności dostaje błąd, że funkcja f2 z modułu m2 jest niezdefiniowana. Myślałem, że wstrzyknąłem to jakoś i nie ma znaczenia kolejność modułów. Powiedzcie mi proszę jak to zrobić, żeby mieć takie elastyczne bloki i żebym mógł wywoływać sobie ich metody niezależnie od kolejności.
  • Najlepsze
  • Wszystkie komentarze
k.....k
k.....k
@IlllI: w momencie deklaracji m1 nie masz jeszcze m2 (undefined). Ide wlasnie spac, jak nic do jutra nie wykminisz to pomyslimy. Sproboj zamienic slowka var na slowka function, czyli zamiast var m1= function daj function m1(){tu dalej}
IlllI
IlllI
IlllI Autor
1
@kefas_safek: dzięki za odpowiedź, jak zamienie kolejnością to śmiga tu bardziej chodzi o naukę. Gdy piszę w angularze to tam te moduły się tak fajnie wpina wzajemnie i wszystko śmiga. Kiedy robię jakieś proste rzeczy bez frameworka też chciałbym mieć taką elastyczność a nie ma sensu wpinania kobyły dlatego szukam jakiegoś wzorca na to ;)
Pozdrawiam
mathijas
mathijas
@IlllI: nie wywołuj tych funkcji.

var m1= function(m2) {
function f1() {
m2. f2()
mathijas
mathijas
@IlllI: nie możesz zrobić return { f2:f2} w funkcji f2. To po prostu nielogiczne.
mathijas
mathijas
@IlllI: z resztą m2 też nie istnieje w momencie wywołania..
IlllI
IlllI
IlllI Autor
0
@mathijas: a w jaki sposób mógłbym te moduły deklarować żeby potem w jednym odwołać się do metody z drugiego?