JS AMD 规范与 CommonJS 规范的兼容性

发布于 2024-10-28 08:07:38 字数 834 浏览 5 评论 0

说明

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

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

归属感

暂无简介

0 文章
0 评论
20977 人气
更多

推荐作者

qq_7J1imQ

文章 0 评论 0

《一串符号》

文章 0 评论 0

hls.

文章 0 评论 0

雅心素梦

文章 0 评论 0

塔塔猫

文章 0 评论 0

微信用户

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文