1 / 16
文档名称:

JavaSript模块规范-AMD规范与CMD规范介绍 (2).docx

格式:docx   大小:112KB   页数:16页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

JavaSript模块规范-AMD规范与CMD规范介绍 (2).docx

上传人:88jmni97 2017/2/16 文件大小:112 KB

下载得到文件列表

JavaSript模块规范-AMD规范与CMD规范介绍 (2).docx

相关文档

文档介绍

文档介绍:1 JavaSript 模块化在了解 AMD , CMD 规范前,还是需要先来简单地了解下什么是模块化,模块化开发? 模块化是指在解决某一个复杂问题或者一系列的杂糅问题时,依照一种分类的思维把问题进行系统性的分解以之处理。模块化是一种处理复杂系统分解为代码结构更合理, 可维护性更高的可管理的模块的方式。可以想象一个巨大的系统代码, 被整合优化分割成逻辑性很强的模块时, 对于软件是一种何等意义的存在。对于软件行业来说: 解耦软件系统的复杂性, 使得不管多么大的系统,也可以将管理,开发,维护变得“有理可循”。还有一些对于模块化一些专业的定义为:模块化是软件系统的属性,这个系统被分解为一组高内聚, 低耦合的模块。那么在理想状态下我们只需要完成自己部分的核心业务逻辑代码,其他方面的依赖可以通过直接加载被人已经写好模块进行使用即可。首先,既然是模块化设计,那么作为一个模块化系统所必须的能力: 1. 定义封装的模块。 2. 定义新模块对其他模块的依赖。 3. 可对其他模块的引入支持。好了,思想有了,那么总要有点什么来建立一个模块化的规范制度吧,不然各式各样的模块加载方式只会将局搅得更为混乱。那么在 JavaScript 中出现了一些非传统模块开发方 2 monJS 的模块规范, AMD ( Asynchronous Module Definition ), CMD ( Common Module Definition )等。 AMD 与 RequireJS AMD Asynchronous Module Definition , 用白话文讲就是异步模块定义, 对于 JSer 来说, 异步是再也熟悉不过的词了,所有的模块将被异步加载,模块加载不影响后面语句运行。所有依赖某些模块的语句均放置在回调函数中。 AMD 规范定义了一个自由变量或者说是全局变量 define 的函数。 define( id?, dependencies?, factory ); AMD 规范 https:///amdjs/amdjs-api/wiki/AMD 第一个参数 id 为字符串类型,表示了模块标识,为可选参数。若不存在则模块标识应该默认定义为在加载器中被请求脚本的标识。如果存在, 那么模块标识必须为顶层的或者一个绝对的标识。第二个参数, dependencies ,是一个当前模块依赖的,已被模块定义的模块标识的数组字面量。第三个参数, factory ,是一个需要进行实例化的函数或者一个对象。 3 创建模块标识为 alpha 的模块,依赖于 require , export ,和标识为 beta 的模块 1. define ( "alpha" ,[ "require" , "exports" , "beta" ], function ( require , expor ts , beta ){ 2. export . verb = function (){ 3. return beta . verb (); 4. // or: 5. return require ( "beta" ). verb (); 6.} 7. }); 一个返回对象字面量的异步模块 1. define ([ "alpha" ], function ( alpha ){ 2. return { 3. verb : function (){ 4. return alpha . verb () +1; 5.} 6.} 7. }); 无依赖模块可以直接使用对象字面量来定义 1. define ({ 2. add : function (x,y ){ 3. return x+y; 4.} 5.} );4 monJS 方式定义 1. define ( function ( require , exports , module ){ 2. var a= require ( 'a' ), = require ( 'b' ); 4. 5. exports . action = function (){}; 6.} ); require(); require API 介绍 https:///amdjs/amdjs-api/wiki/require 在 AMD 规范中的 require monJS 中的 require 不同。由于动态检测依赖关系使加载异步,对于基于回调的 require 需求强烈。局部与全局的 require 局部的 require 需要在 AMD 模式中的 define 工厂函数中传入 require 。 1. define ([ 'require' ], function ( require ){ 2. // ... 3.} ); 4. or : 5. define ( funct

最近更新

2025年度实习生实习期间安全保障实习劳动协议.. 42页

2025年度安全生产培训与咨询服务合同范本3篇 39页

2025年度学生实习就业实习实训基地实习安全保.. 128页

2025年度存款赠与与新能源开发协议3篇 41页

养老服务业贷款合同协议 3页

农业大数据分析合作协议 3页

农产品电商销售合作合同 3页

2025年度培训机构退学退费风险控制合同3篇 37页

出境游研学旅行合作协议书 3页

2025年度全国煤炭交易居间服务合同3篇 43页

初级农产品与电商平台农产品溯源服务合同 3页

2025年度二零二五年度城市综合体大包建房合同.. 41页

办公室装修合同(含室内空气净化服务) 3页

办公用品采购合同绿色采购与成本效益分析 3页

北京汽车租赁公司与健身俱乐部合作合同 3页

医疗设备代理销售服务合同范本 3页

单间出租合同(含租赁期限提前终止条件) 3页

厂房水电消防设施安全应急预案编制合同 3页

原材料国际采购合同范本 3页

变压器安装工程安全防护及验收合同 3页

商务酒店物业管理与服务协议 3页

国际非政府组织项目劳务输出合同 3页

地暖工程施工与节能产品推广合同 3页

城乡规划与公共安全服务合同 3页

2025年最新中秋节国旗下讲话 6页

城市绿化工程安全生产承包责任书 3页

焦虑自评量表SAS完整 6页

牙体牙髓病用药 53页

升压站调试方案 11页

医疗美容门诊部院感自查 40页