3. AMD规范与CommonJS规范的兼容性

  • CommonJS规范加载模块是同步的,也就是说,只有加载完成,才能执行后面的操作。
  • AMD规范则是非同步加载模块,允许指定回调函数。
  • 由于Node.js主要用于服务器编程,模块文件一般已经存在于本地硬盘,所以加载起来比较快,不用考虑非同步加载的方式,所以CommonJS规范比较适用。
  • 如果是浏览器环境,要从服务器端加载模块,这时就必须采用非同步模式,因此浏览器一般适用AMD规范。

AMD规范适用define方法定义模块,下面就是一个例子

define(["package/lib"],function(lib){
function foo(){
lib.log('hello world');
}
return { foo };
});

AMD规范允许输出的模块兼容CommonJS规范,这时define方法需要写成这样

define(function(require,exports,mould){
var someModule = require('someModule');
var anotherModule = require('anotherModule'); someModule.doTehAwesome();
anotherModule.doMoarAwesome(); exports.asplode = function(){
someModule.doTehAwesome();
anotherModule.doMoarAwesome();
};
})

最新文章

  1. CSS 布局
  2. C#中获取当前时间:System.DateTime.Now.ToString()用法
  3. 使用NuGet管理项目类库引用
  4. 微博转发关系采集,可拓展关键字采集,评论采集(Java版)
  5. 第二章 Odoo的安装与部署
  6. [ACM_水题] ZOJ 3714 [Java Beans 环中连续m个数最大值]
  7. Oracle 单行函数
  8. iOS - UIActionSheet
  9. X64相关文章
  10. PHP 反射机制Reflection
  11. Java.lang.RuntimeException: Unable to instantiate activity ComponentInfo
  12. Cocos2d-x v3.3 lua绑定c++类方法总结
  13. Xcode如何添加字体库--
  14. hdu4956 Poor Hanamichi
  15. C#将Excel数据表导入SQL数据库的两种方法(转)
  16. 深度解剖dubbo源码
  17. JavaMail在Windows平台下正常发送邮件,部署到Linux后则发送失败
  18. Linux 下建立 SSH 隧道做 Socket 代理
  19. POJ1860:Currency Exchange(BF)
  20. SqlServer中的merge操作(转载)

热门文章

  1. BZOJ4241:历史研究(回滚莫队)
  2. 【Linux】netstat命令
  3. ReplaceGoogleCDN 真的好使
  4. 从三数之和看如何优化算法,递推-->递推加二分查找-->递推加滑尺
  5. 动态内存管理:malloc/free/new/delete/brk/mmap
  6. Python中字符串匹配函数startswith()函数
  7. 神经机器翻译(seq2seq RNN)实现详解
  8. 去除批次效应 sva
  9. Unable to resolve service for type 'Microsoft.AspNetCore.ResponseCompression.IResponseCompressionProvider' while attempting to activate 'Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMid
  10. kubernetes node节点失效 调度