JavaScript模块模式/组织/子模块

时间:2010-11-04 20:29:13

标签: javascript namespaces module-pattern

  1. 我想知道是什么 区别 (优点/缺点)之间 以下模式。
  2. 如何创建子模块     关于模块模式?
  3. 我的目标是将 js 整理成多个文件 延迟加载,但有一个命名空间。

    例如:

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

    var SO = function(){
    
        var CONSTANT = 'Z';
    
        function createX(){
          alert("create X");
        }
    
        function getY(){
           alert("get Y");
        }
        return{
          create:createX,
          get:getY
        }
    }();
    
    //SO.createX(); 
    //SO.getY();
    

    VS

    var SO = (function() {
    
        var CONSTANT = 'Z';
    
        function createX(){
          alert("create X");
        }
    
        function getY(){
           alert("get Y");
        }
    
        return {
          create:createX,
          get:getY
        }
    
    } ());
    

2 个答案:

答案 0 :(得分:5)

您考虑过Require.JS了吗?它试图提供以下解决方案:

  • 某种#include / import / require
  • 加载嵌套依赖项的能力
  • 开发人员易于使用,但后来又有助于部署的优化工具

Require.JS实现Common.JS定义的Module/Asynchronous Definition规范

答案 1 :(得分:3)

这是一个很好的阅读:http://snook.ca/archives/javascript/no-love-for-module-pattern,另一个:http://lamb.cc/blog/category/javascript/

YUI使用它,就像我一样,我没有发现任何受其限制的情况,并且很好地与自定义模块的YUI依赖加载器集成。

(对不起,我知道这不是一个完整的答案,但是有一些未经修改的信息给你)