AMD规范源于CommonJS中的Transport/C规范,格式如下:
define(id?, dependencies?, factory);
模块名规范:
1. 模块名由:多个string name 或者 ‘/‘组成;
2. string name遵从驼峰规则,或者:‘.‘, ‘..‘;
3. 模块名禁止带扩展名,如:‘.js‘;
4. 顶级路径模块名以根空间开始,相对路径模块名:以‘.‘, ‘..‘开始;
依赖规范:
1. 如果是["require", "exports", "module"],按照CommonJS规范,否则将参数作为参数列表注入factory中。
工厂规范:
1. 无依赖参数时,通过toString来require依赖;有依赖参数则按依赖参数来访问;
2. 依赖先执行,工厂后执行;
define.amd属性
1. amd属性标识该define函数遵守AMD规范,以区别于不遵守AMD的define函数;
2. amd规范如果更新,则会以amd2属性为名称;
3. amd属性的值是一个对象,但对象具体内容有实现者自定义;
与CommonJS的关系:
1. 只要CommonJS(实现者:NodeJS)的factory中无同步的require就可以通用,因为浏览器端不支持,同时性能上也有影响。
时间: 2024-10-11 16:19:23