CommonJS及AMD模块化编程
来源:互联网 发布:tensorflow 量化流程 编辑:程序博客网 时间:2024/05/17 16:02
模块化编程规范有 CommonJS、AMD(这两者常用)以及 ES Harmony(理想化规范)
目的:
1、高度解耦一些代码块,提高代码的复用性
2、减少JS全局命名变量的冲突,避免污染全局命名空间。
一、CommonJS 同步模块加载
API定义很多普通应用程序(主要指非浏览器的应用)使用的API,从而填补了这个空白。它的终极目标是提供一个类似Python,Ruby和Java标准库。这样的话,开发者可以使用CommonJS API编写应用程序,然后这些应用可以运行在不同的JavaScript解释器和不同的主机环境中。在兼容CommonJS的系统中,你可以实用JavaScript程序开发:
服务器端JavaScript应用程序
命令行工具
图形界面应用程序
混合应用程序(如,Titanium或Adobe AIR)
CommonJS是一种规范,是一个不断发展的规范。NodeJS是这种规范的实现。
CommonJS模块的特点如下:
1、所有代码都运行在模块作用域,不会污染全局作用域。
2、模块可以多次加载,但是只会在第一次加载时运行一次,然后运行结果就被缓存了,以后再加载,就直接读取缓存结果。要想让模块再次运行,必须清除缓存。
3、模块加载的顺序,按照其在代码中出现的顺序。
备注:根据CommonJS的特点,可以断定立即执行函数是CommonJS的一种
立即执行函数,代码示例如下所示:
二、AMD 异步模块加载
AMD规范则是非同步加载模块,允许指定回调函数。由于Node.js主要用于服务器编程,模块文件一般都已经存在于本地硬盘,所以加载起来比较快,不用考虑非同步加载的方式,所以CommonJS规范比较适用。但是,如果是浏览器环境,要从服务器端加载模块,这时就必须采用非同步模式,因此浏览器端一般采用AMD规范。
require.js和curl.js是AMD的实现。
推荐文章:http://javascript.ruanyifeng.com/nodejs/module.html
目的:
1、高度解耦一些代码块,提高代码的复用性
2、减少JS全局命名变量的冲突,避免污染全局命名空间。
一、CommonJS 同步模块加载
API定义很多普通应用程序(主要指非浏览器的应用)使用的API,从而填补了这个空白。它的终极目标是提供一个类似Python,Ruby和Java标准库。这样的话,开发者可以使用CommonJS API编写应用程序,然后这些应用可以运行在不同的JavaScript解释器和不同的主机环境中。在兼容CommonJS的系统中,你可以实用JavaScript程序开发:
服务器端JavaScript应用程序
命令行工具
图形界面应用程序
混合应用程序(如,Titanium或Adobe AIR)
CommonJS是一种规范,是一个不断发展的规范。NodeJS是这种规范的实现。
CommonJS模块的特点如下:
1、所有代码都运行在模块作用域,不会污染全局作用域。
2、模块可以多次加载,但是只会在第一次加载时运行一次,然后运行结果就被缓存了,以后再加载,就直接读取缓存结果。要想让模块再次运行,必须清除缓存。
3、模块加载的顺序,按照其在代码中出现的顺序。
备注:根据CommonJS的特点,可以断定立即执行函数是CommonJS的一种
立即执行函数,代码示例如下所示:
(function(value){//创建了一个命名空间,防止与全局变量冲突var name="xyong";console.log("姓名为:"+name+",传入的值为:"+value);})(12345);
二、AMD 异步模块加载
AMD规范则是非同步加载模块,允许指定回调函数。由于Node.js主要用于服务器编程,模块文件一般都已经存在于本地硬盘,所以加载起来比较快,不用考虑非同步加载的方式,所以CommonJS规范比较适用。但是,如果是浏览器环境,要从服务器端加载模块,这时就必须采用非同步模式,因此浏览器端一般采用AMD规范。
require.js和curl.js是AMD的实现。
推荐文章:http://javascript.ruanyifeng.com/nodejs/module.html
阅读全文
0 0
- CommonJS及AMD模块化编程
- javascript模块化编程:CommonJS和AMD规范
- CommonJS,AMD模块化规范
- Javascript模块化编程系列二: 模块化的标准化(CommonJS & AMD)
- Javascript模块化编程系列三: CommonJS & AMD 模块化规范描述
- Javascript模块化编程及CommonJS和AMD规范浅析(一)
- Javascript模块化编程及CommonJS和AMD规范浅析(二)
- JavaScript模块化编程 - CommonJS, AMD 和 RequireJS之间的关系
- JavaScript模块化编程 - CommonJS, AMD 和 RequireJS之间的关系
- Javascript模块化编程——使用AMD,CommonJS,ES Harmony
- JavaScript模块化编程 - CommonJS, AMD 和 RequireJS之间的关系
- js模块化编程之彻底弄懂CommonJS和AMD/CMD
- 大行其道的模块化编程-CommonJS、AMD、CMD、UMD、ES6
- js模块化编程之彻底弄懂CommonJS和AMD/CMD!
- 使用 AMD、CommonJS 及 ES Harmony 编写模块化的 JavaScript
- 使用 AMD、CommonJS 及 ES Harmony 编写模块化的 JavaScript
- 前端模块化AMD、CMD、CommonJS
- AMD/CMD/CommonJs 模块化区别?
- The server time zone value '�й���ʱ��' is unrecognized or represents more than one time zone. You mu
- imx6ul之OpenWRT中的移动存储设备挂载与结项
- 资源属性解释
- Android权限之三共享UID和签名
- Hive原理
- CommonJS及AMD模块化编程
- 如何把 <li> 标签种的 <a> 设置成和<li>一样大,并且把<li>覆盖在下面。
- ROP绕过DEP和ALSR 64位
- Android截屏与WebView长图分享经验总结
- Python使用管道(pipe)协同标准输入输出流使程序通信
- Android菜鸟的成长笔记(6)——剖析源码学自定义主题Theme
- bzoj1111: [POI2007]四进制的天平Wag
- WinDbg抓取程序报错dump文件的方法
- 各种排序算法实现和原理(详细)