CommonJS、CMD、AMD、NodeJS创造JavaScript的未来

CMD是国内玉伯大神在开发SeaJS的时候提出来的,属于CommonJS的一种规范,此外还有AMD,其对于的框架是RequireJS



1、二者都是异步模块定义(Asynchronuous Module Definition)的一个实现;

2、CMDAMD都是CommonJS的一种规范的实现定义,RequireJSSeaJS是对应的实践;

3、CMDAMD的区别:CMD相当于按需加载,定义一个模块的时候不需要立即制定依赖模块,在需要的时候require就可以了,比较方便;而AMD则相反,定义模块的时候需要制定依赖模块,并以形参的方式引入factory中。

区别看下边例子:

//AMD方式定义模块
define([‘dep1‘,‘dep2‘],function(dep1,dep2){
     //内部只能使用制定的模块
      return function(){};
});
//CMD
define(function(require,exports,module){
   //此处如果需要某XX模块,可以引入
   var xx=require(‘XX‘);
});

4、JavaScript语言是弱结构性的,通过CommonJS定义一些规范,CMDAMD得定义模块的方式对代码进行管理,使得更易维护;此外,NodeJS的诞生,对模块的规范定义,和包(NPM)的概念的引入,让JS管理不再困难,一个字,爽爆了!

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-04 10:48:40

CommonJS、CMD、AMD、NodeJS创造JavaScript的未来的相关文章

JavaScript模块化思想之CommonJS、AMD、CMD、UMD

前一篇文章了解了什么是模块,这一篇就简单介绍一下如何定义并加载一个模块. 我所了解的三种模块加载方式分别是CommonJS.AMD和CMD 网上关于这三种模块加载方式讲解的文章很多,我就简单的做个介绍,如果想深入了解一下可以去网上查阅一下相关的资料. (1)CommonJS 在CommonJS中,一个单独的文件就是一个模块.被调用模块内使用exports暴露接口,调用模块使用require调用暴露出来的接口. 示例如下: 1 // student.js 2 // 私有变量 3 var a = 1

关于commonjs,AMD,CMD之间的异同

1.简介 随着前端业务复杂度的增加,模块化成为一个大的趋势.而在ES6还未被浏览器所支持的情况下,commonjs作为ES6中标准模块加载方案,在客服端中的支持情况并不好,现在在客服端中有2中模块化的解决方案,CMD和AMD,他们的代表分别为seajs和requirejs.这篇文章主要介绍我对commonjs.AMD以及CMD的理解. 2.commonJS commonjs的目标是制定一个js模块化的标准,它的目标制定一个可以同时在客服端和服务端运行的模块.这些模块拥有自己独立的作用域,也可以向

彻底弄懂CommonJS和AMD/CMD!

JS中的模块规范(CommonJS,AMD,CMD),如果你听过js模块化这个东西,那么你就应该听过或CommonJS或AMD甚至是CMD这些规范咯,我也听过,但之前也真的是听听而已. 现在就看看吧,这些规范到底是啥东西,干嘛的.本文包括这三个规范的来源及对应的产物的原理. 一.CommonJS 1.一开始大家都认为JS是辣鸡,没什么用,官方定义的API只能构建基于浏览器的应用程序,逗我呢,这太狭隘了吧(用了个高端词,嘎嘎),CommonJS就按耐不住了,CommonJS API定义很多普通应用

js模块化编程之CommonJS和AMD/CMD

一.CommonJS 1.CommonJS API定义很多普通应用程序(主要指非浏览器的应用)使用的API,从而填补了这个空白.它的终极目标是提供一个类似Python,Ruby和Java标准库.这样的话,开发者可以使用CommonJS API编写应用程序,然后这些应用可以运行在不同的JavaScript解释器和不同的主机环境中. 在兼容CommonJS的系统中,你可以使用JavaScript开发以下程序: (1).服务器端JavaScript应用程序(2).命令行工具(3).图形界面应用程序(4

js模块化编程之彻底弄懂CommonJS和AMD/CMD!

先回答我:为什么模块很重要? 答:因为有了模块,我们就可以更方便地使用别人的代码,想要什么功能,就加载什么模块.但是,这样做有一个前提,那就是大家必须以同样的方式编写模块,否则你有你的写法,我有我的写法,岂不是乱了套! 于是下面三个模块规范出来了,这篇文章也出来了(拼出来的 {捂脸笑}). JS中的模块规范(CommonJS,AMD,CMD),如果你听过js模块化这个东西,那么你就应该听过或CommonJS或AMD甚至是CMD这些规范咯,我也听过,但之前也真的是听听而已. 现在就看看吧,这些规范

[转]js模块化编程之彻底弄懂CommonJS和AMD/CMD!

原文: https://www.cnblogs.com/chenguangliang/p/5856701.html ------------------------------------------------------------------------------------------------------ 先回答我:为什么模块很重要? 答:因为有了模块,我们就可以更方便地使用别人的代码,想要什么功能,就加载什么模块.但是,这样做有一个前提,那就是大家必须以同样的方式编写模块,否则你

模块化(CommonJs、AMD、CMD、UMD)

全文摘自:(好文,建议直接去看,以下仅对该系列文章中的<历史发展>篇幅进行备份) http://zhaoda.net/webpack-handbook/module-system.html 现状 伴随着移动互联的大潮,当今越来越多的网站已经从网页模式进化到了 Webapp 模式.它们运行在现代的高级浏览器里,使用 HTML5. CSS3. ES6 等更新的技术来开发丰富的功能,网页已经不仅仅是完成浏览的基本需求,并且webapp通常是一个单页面应用,每一个视图通过异步的方式加载,这导致页面初始

对CommonJS、AMD、CMD简单粗暴的理解

对于大型Web应用或者项目,动辄上万行的代码,给开发和后期维护带来了不小的麻烦.因此,需要有一种规范化的模块管理机制,帮助开发者集中处理模块的定义与调用关系. 在ES6正式出台前,已经有不少人致力于推出适合Web开发的模块化管理标准,CommonJS.AMD和CMD就是其中的成功代表. 以下为我查阅资料后,对三者最直观的理解: CommonJS 通常被应用于服务器,实现代表:NodeJS.NodeJS相信大家都不陌生,它的出现成功将Javascript应用到了服务器端,使得前段开发者也能较为省力

再唠叨JS模块化加载之CommonJS、AMD、CMD、ES6

Javascript模块化编程,已经成为一个迫切的需求.理想情况下,开发者只需要实现核心的业务逻辑,其他都可以加载别人已经写好的模块. Javascript社区做了很多努力,在现有的运行环境中,实现"模块"的效果. CommonJS CommonJS定义的模块分为:  模块引用(require)    模块输出(exports)       模块标识(module) CommonJS Modules有1.0.1.1.1.1.1三个版本: Node.js.SproutCore实现了 Mo