JS模块化

  1. CMD

    依赖就近,延迟执行

    define(function(require, exports, module) {
    var $ = require('jquery');
    var Spinning = require('./spinning');
    exports.doSomething = ...
    module.exports = ...
    })
  2. AMD

    1.  异步执行,,它要在声明模块的时候指定所有的依赖dependencies,并且还要当做形参传
    到factory中,对于依赖的模块提前执行,依赖前置
    2. AMD采用:require([module], callback);
    例如:
    定义:
     // math.js
      define(function (){
        var add = function (x,y){
          return x+y;
        };
        return {
          add: add
        };
      });
      使用:
      require(['math'], function (math) {
        math.add(2, 3);
      });
      
  3. CommonJS

    1.  服务器端使用
    2.  同步
    3. 浏览器不兼容的原因:缺少四个NODE变量
    module
    exports
    require
    global,入股提供着四个变量,可以使用模块。
    var module = {
    exports: {}
    };
    (function(module, exports) {
    exports.multiply = function (n) { return n * 1000 };
    }(module, module.exports))
    var f = module.exports.multiply;
    f(5) // 5000
    4. 使用
    // moduleA.js
    module.exports = function( value ){
    return value * 2;
    }
    // moduleB.js
    var multiplyBy2 = require('./moduleA');
    var result = multiplyBy2(4);
posted @ 2018-08-13 15:32  dfgfgf  阅读(108)  评论(0编辑  收藏  举报