文档章节

CommonJS 和 AMD 规范?

w-rain
 w-rain
发布于 2015/02/05 15:08
字数 351
阅读 1483
收藏 4

1. 什么是CommonJS?

    CommonJS 是javascript模块化编程的一种规范,主要是在服务器端模块化的规范,一个单独的文件就是一个模块。每一个模块都是一个单独的作用域,也就是说,在该模块内部定义的变量,无法被其他模块读取,除非定义为global对象的属性。

    在CommonJS中有一个全局性方法require( ),用于加载模块。

    //example.js

    module.exports = function( ){ };

    example.message = "hi";

    //main.js

    var example = require("./example");

    CommonJS加载模块是同步的,只有加载完成,才能执行后面的操作,主要是由于服务端的编程模块文件都存在于本地硬盘,所以加载较快。

2. 什么是AMD 规范?

     AMD是"Asynchronous Module Definition"的缩写,意思就是"异步模块定义"。异步方式加载模块,模块的加载不影响它后面语句的执行。所有依赖这个模块的语句,都定义到一个回调函数中,等到加载完成之后,这个回调函数才会运行。

    AMD规范使用define方法定义模块:

    define(["/libs/jquery"], function(jquery){

        function log(){

            alert("hello world!");

        }

        return {

            log: log

        }

    });

    当然AMD也允许输出模块兼容CommonJS规范:

    define(function(require, exports, module){

        var module = require("module");

        module.doSometing( );

        exports.do = function(){

            module.doSometing( );

        }

    });

 

    

    

转载时请注明:来自w-rain的个人博客

© 著作权归作者所有

共有 人打赏支持
w-rain
粉丝 27
博文 52
码字总数 44008
作品 0
成都
程序员
关于 CommonJS AMD CMD UMD

一、CommonJS CommonJs 是服务器端模块的规范,Node.js采用了这个规范。 根据CommonJS规范,一个单独的文件就是一个模块。加载模块使用require方法,该方法读取一个文件并执行,最后返回文件...

雪飘七月
06/26
0
0
关于 CommonJS AMD CMD UMD

CommonJS CommonJs 是服务器端模块的规范,Node.js采用了这个规范。 根据CommonJS规范,一个单独的文件就是一个模块。加载模块使用require方法,该方法读取一个文件并执行,最后返回文件内部...

奥巴码侬
2014/05/11
0
8
TypeScript 模块导入那些事

ES6 模块导入的限制 我们先来看一个具体的例子: 在 Node 项目里,使用 CommonJS 规范引入一个模块: 改写为 TypeScript(1.5+ 版本)时,通常有两种方式: 使用 ES6 模块导入方式: 使用 Ty...

三毛丶
06/11
0
0
再唠叨JS模块化加载之CommonJS、AMD、CMD、ES6

Javascript模块化编程,已经成为一个迫切的需求。理想情况下,开发者只需要实现核心的业务逻辑,其他都可以加载别人已经写好的模块。 Javascript社区做了很多努力,在现有的运行环境中,实现...

周陆军
08/03
0
0
Javascript模块化编程(二):AMD规范

原作者:阮一峰 这个系列的第一部分介绍了Javascript模块的基本写法,今天介绍如何规范地使用模块。 (接上文) 七、模块的规范 先想一想,为什么模块很重要? 因为有了模块,我们就可以更方...

Idiot_s_Sky
2014/03/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

利用碎片化时间Get Linux系统

起初,我做着一份与IT毫无关系的工作,每月领着可怜的工资,一直想改变现状,但无从下手,也就是大家熟知的迷茫。我相信,每一个人都会或多或少的经历过迷茫,迷茫每一个选择,迷茫工作或者生...

linuxprobe16
15分钟前
0
0
OSChina 周日乱弹 —— 恨不得给你买张飞机挂票

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @开源中国首席灵魂师:分享张希/曹方的单曲《认真地老去》 来不及认真的年轻过,就认真的老去! 《认真地老去》- 张希/曹方 手机党少年们想听...

小小编辑
今天
168
6
如何实现靠谱的分布式锁?

分布式锁,是用来控制分布式系统中互斥访问共享资源的一种手段,从而避免并行导致的结果不可控。基本的实现原理和单进程锁是一致的,通过一个共享标识来确定唯一性,对共享标识进行修改时能够...

郑加威
今天
2
0
Mac OS X下Maven的安装与配置

Mac OS X 安装Maven: 下载 Maven, 并解压到某个目录。例如/Users/robbie/apache-maven-3.3.3 打开Terminal,输入以下命令,设置Maven classpath $ vi ~/.bash_profile 添加下列两行代码,之后...

TonyStarkSir
今天
3
0
关于编程,你的练习是不是有效的?

最近由于工作及Solution项目的影响,我在重新学习DDD和领域建模的一些知识。然后,我突然就想到了这个问题,以及我是怎么做的? 对于我来说,提升技能的项目会有四种: 纯兴趣驱动的项目。即...

问题终结者
今天
12
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部