JS3 -- 模块(cmd amd)

Amd和Cmd的代表分别是require.js以及sea.js


AMD (amd 提前读取并加载(前置读取并加载))

是 RequireJS 在推广过程中对模块定义的规范化产出。https://github.com/amdjs/amdjs-api/wiki/AMD

define(['./a','./b'],function(a,b){
   a.doSomething()
   b.doSomething()
}) 


CMD (cmd 提前读取后加载)

是 SeaJS 在推广过程中对模块定义的规范化产出。https://github.com/seajs/seajs/issues/242

(NodeJS是CommonJS规范的实现,webpack 也是以CommonJS的形式来书写。)

define(function(require, exports, module) {
  var a = require('./a')
  a.doSomething()
  var b = require('./b')
  b.doSomething()
})

1.cmd 提前读取后加载,而是在需要时加载 “懒加载”==as lazy as possible

2.一个模块就是一个文件(崇尚简单)

参考:

js模块化编程之彻底弄懂CommonJS和AMD/CMD!
【面试系列】之一:关于Cmd和Amd
AMD 和 CMD 的区别有哪些?
SeaJS与RequireJS最大的区别

https://www.zhihu.com/question/21347409#answer-2323656

原生js window 好像没有define方法,这应该是SeaJS框架里的 你要用首先要导入SeaJS包

以妓会友,评赞走起

原文地址:https://www.cnblogs.com/lgyong/p/8586283.html