CMD规范全称是Common Module Definition。在这个规范中,主要规范了基本的书写格式和交互规则。
一:书写格式
在CMD规范中,一个模块就是一个文件。代码的书写格式如下:
define(factory);
其中define是一个全局函数函数,用来定义模块,define接受factory参数;
factory是参数,他可以是对象或者字符串,也可以是一个函数;
(1)当factory是对象或者字符串的时候表示,模块的接口就是该对象或者字符串,例如:
define({"foo":"bar"});//factory是对象
define('I am a template,my name is {{name}}.'); //factory是字符串
(2)当factory是函数的时候,表示是模块的构造方法。执行该构造方法可以得到模块对外的接口。函数在执行的时候默认会传入三个参数:require,exports,module。例如:
define(function(require,exports,module){
//函数内容
});
下面是三个参数的详细介绍:
1>require:这是factory方法的第一个参数,它是一个方法。他接收模块标识作为唯一参数,用来接受其他模块的接口。例如:
define(function(require,exports,module){
var a = require('./a'); //
a.doSomething(); //
});
require在使用的时候在遵循一些简单的规则
A:正确拼写require,例如:
define(function(req)); //错误的
define(function(require)); //正确的
B: 不能再任何作用域中对require进行赋值,或者重命名require函数:
//错误1
var req = require;
var a = req('./a');