JS AMD 规范与 CommonJS 规范的兼容性
说明
- CommonJS 规范加载模块是同步的,也就是说,只有加载完成,才能执行后面的操作
- AMD 规范则是非同步加载模块,允许指定回调函数。
- 由于 Node.js 主要用于服务器编程,模块文件一般都已经存在于本地硬盘,所以加载起来比较快,不用考虑非同步加载的方式,所以 CommonJS 规范比较适用。
- 但是,如果是浏览器环境,要从服务器端加载模块,这时就必须采用非同步模式,因此浏览器端一般采用 AMD 规范。
AMD 规范使用 define 方法定义模块
define(['package/lib'], function(lib){
function foo(){
lib.log('hello world!')
}
return {
foo: foo
}
})
AMD 规范允许输出的模块兼容 CommonJS 规范,这时 define 方法需要写成下面这样:
define(function (require, exports, module){
var someModule = require("someModule")
var anotherModule = require("anotherModule")
someModule.doTehAwesome()
anotherModule.doMoarAwesome()
exports.asplode = function (){
someModule.doTehAwesome()
anotherModule.doMoarAwesome()
}
})
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
上一篇: JS require 命令
下一篇: TypeScript 常见问题
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论