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

Eey*_*ore 5 javascript namespaces module-pattern

  1. 我想知道以下模式之间的区别(优点/缺点).
  2. 如何根据模块模式创建子模块?

我的目标是有我的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();
Run Code Online (Sandbox Code Playgroud)

VS.

var SO = (function() {

    var CONSTANT = 'Z';

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

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

    return {
      create:createX,
      get:getY
    }

} ());
Run Code Online (Sandbox Code Playgroud)

小智 5

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

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

Require.JS实现了Common.JS 定义模块/异步定义规范