javascript模块化中的AMD规范

来源:互联网 发布:日本 压抑 知乎 编辑:程序博客网 时间:2024/05/25 12:22

对于一个刚接触javascript模块化编程的人来讲,需要的是一手好资料,javascript模块化编程的前提是需要有javascript基础。在下接触的更多的是关于PHP服务器端的,对于javascript,我只是一个新手,不像老司机那般驾轻就熟。前两天我在github上download了一段程序下来,慢慢开始研究别人写的code,以前我不大喜欢看别人写的东西,总觉得看起来费劲,于是就找了一段简单的code来看,其中有这样一段代码涉及到AMD模块化书写:

<script language="javascript" type="text/javascript">    require(['<?php echo SITE_URL?>scripts/common.js'], function (common) {        require(['<?php echo SITE_URL?>scripts/        <?php echo $folder_name?>/        <?php echo $controller_name?>/index.js']);    });</script>

于是我查了相关资料,找到了阮一峰的博客中讲到有关AMD规范化的讲解,他讲得非常清晰,非常好,在此引入其概念:

AMD是"Asynchronous Module Definition"的缩写,意思就是"异步模块定义"。它采用异步方式加载模块,模块的加载不影响它后面语句的运行。所有依赖这个模块的语句,都定义在一个回调函数中,等到加载完成之后,这个回调函数才会运行。
var math = require('math');math.add(2, 3);

注释:第二行math.add(2, 3),在第一行require(‘math’)之后运行,因此必须等math.js加载完成。而add是math中的方法。

如果将上述代码改成AMD形式,如下:

 require(['math'], function (math) { math.add(2, 3);});

再对比其上述程序,就不难看出写成的是AMD形式。

转:http://www.ruanyifeng.com/blog/2012/10/asynchronous_module_definition.html

原创粉丝点击