CommonJS及AMD模块化编程
程序员文章站
2022-06-13 22:06:29
...
模块化编程规范有 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
上一篇: linux下安装nodejs的详细步骤
下一篇: 索尼不放弃手机业务:会持续发力中国市场
推荐阅读
-
javascript模块化编程之AMD模块化编程规范实例讲解
-
JavaScript模块化-CommonJS、AMD、CMD、UMD、ES6
-
前端模块化:CommonJS,CMD,AMD,ES6
-
前端模块化小总结—commonJs,AMD,CMD, ES6 的Module
-
javascript模块化之CommonJS、AMD、CMD、UMD、ES6
-
javascript模块化之CommonJS、AMD、CMD、UMD、ES6
-
JavaScript里面的模块化4种方式(CommonJS,AMD,CMD,es6Module)
-
模块化module/CommonJS/Browserify/AMD/RequireJS/CMD/SeaJS/ES6_Babel
-
前端模块化:AMD, CMD, CommonJS, ES6 Module
-
前端模块化详解(CommonJS、AMD、CMD、ES Module)