2010-11-04 38 views
5
  1. Me gustaría saber cuál es la diferencia (ventajas/desventajas) entre los patrones siguientes organización /.
  2. ¿Cómo puedo crear módulos secundarios basados ​​en en el patrón del módulo?

Mi objetivo es tener mis js organizados en varios archivos que son cargado ligeramente pero tienen un espacio de nombres.JavaScript módulo de patrón/submódulos

Por ejemplo:

SO.global (global.js) SO.global.registration (registration.js) < - carga

VS.

var SO = (function() { 

    var CONSTANT = 'Z'; 

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

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

    return { 
     create:createX, 
     get:getY 
    } 

}()); 
+2

no hay ninguna diferencia entre los dos ejemplos .... uno tiene parens alrededor de ella pero SH debería hacer lo mismo. – rob

+0

Algunos padres utilizan paréntesis adicionales en el segundo ejemplo para indicar que la expresión de la función se llama inmediatamente. –

+0

Creo que los parens están en el lugar equivocado para esa convención. Creo que generalmente está escrito como (function() {...})() – Gopherkhan

Respuesta

5

¿Ha considerado Require.JS? Se trata de proporcionar la siguiente solución:

  • Una especie de # include/import/requieren
  • capacidad de cargar dependencias anidadas
  • facilidad de uso para los desarrolladores, pero luego el respaldo de una herramienta de optimización que ayuda a la implementación

Require.JS implementa la Module/Asynchronous Definition spec definido por common.js

3

Aquí es una buena lectura: http://snook.ca/archives/javascript/no-love-for-module-pattern, y otro: http://lamb.cc/blog/category/javascript/

YUI utiliza con avidez, como yo, no he encontrado ninguna situación en la que estaba limitado por ella, y que integra muy bien con el cargador de dependencias YUI para módulos personalizados.

(Lo siento, me doy cuenta de que esto no es una respuesta completa, pero hay algo de información para usted untampered)

+0

Estos enlaces acaban de agregar un par de meses en mi canal de "skills-todo". – cherouvim

+0

El primer enlace es raro. Es como si estuviera argumentando contra el uso de variables privadas. – david

+0

@cherouvim, de acuerdo, estoy a punto ... el 70% del camino involucrado en el monstruo del cerebro (para mí de todos modos) – danjah

Cuestiones relacionadas