2010-11-04 14 views
5
  1. chciałbym wiedzieć, jaka jest różnica (zalety/wady) między następujące wzory.
  2. Jak utworzyć pod moduły we wzorze modułu?

Moim celem jest, aby moje js zorganizowanych w wielu plików że są leniwy załadowane ale mają jedną nazw.JavaScript moduł wzór/organizacja/sub-moduły

Na przykład:

SO.global (global.js) SO.global.registration (registration.js) < - obciążenia

VS.

var SO = (function() { 

    var CONSTANT = 'Z'; 

    function createX(){ 
     alert("create X"); 
    } 

    function getY(){ 
     alert("get Y"); 
    } 

    return { 
     create:createX, 
     get:getY 
    } 

}()); 
+2

nie ma żadnej różnicy pomiędzy tymi dwoma przykładami .... trzeba nawiasów wokół niego, ale sh Mógłbym zrobić to samo. – rob

+0

Dodatkowe pareny w drugim przykładzie są używane przez niektórych ludzi do wskazania, że ​​wyrażenie funkcji jest wywoływane natychmiast. –

+0

Myślę, że pareny są jednak w niewłaściwym miejscu dla tej konwencji. Wierzę, że jest to zazwyczaj napisane jako (function() {...})() – Gopherkhan

Odpowiedz

5

Czy za Require.JS? Próbuje podać następujące rozwiązanie:

  • Jakiś # include/import/wymagać
  • możliwość załadowania zagnieżdżone zależności
  • łatwości użytkowania dla dewelopera, ale potem wsparte narzędzie do optymalizacji, który pomaga wdrażanie

Require.JS realizuje Module/Asynchronous Definition zdefiniowany przez specyfikację Common.JS

3

Oto dobry odczyt: http://snook.ca/archives/javascript/no-love-for-module-pattern, a kolejne: http://lamb.cc/blog/category/javascript/

YUI używa go zachłannie, tak jak ja, ja nie znaleziono żadnych sytuacje, gdzie został ograniczony przez to, i to ładnie integruje się z program ładujący zależności YUI dla niestandardowych modułów.

(Niestety, zdaję sobie sprawę, to nie jest to pełna odpowiedź, ale istnieje pewne nienaruszonej informacji dla ciebie)

+0

Te linki właśnie dodały kilka miesięcy do mojego potoku "skills-todo". – cherouvim

+0

Pierwsze łącze jest dziwne. To tak, jakby argumentował przeciwko użyciu prywatnych zmiennych. – david

+0

@cherouvim, zgodziłem się, jestem około ... 70% drogi przez maniakalny mózg zaangażowany (dla mnie w każdym razie) – danjah