标签:
AMD(Asynchronous Module Definition) API 制定了定义模块的规范,这个模块和它要依赖的能异步加载的。这和浏览器的异步加载模块的坏境刚好适应,同步加载可能会导致性能,可用,调试,跨域问题
这个规范定义了唯一的 "define" 函数,它是全局变量。 关于这个函数描述:
define(id?, dependencies?, factory);
第一个参数是一个字面量。它指定了模块的名称。这个参数是可选的,如果没有指定,那么模块的id就是
加载的脚本的名字。当传了参数,模块id必须是"最顶级"或者绝对的。
模块名用来唯一标识定义的模块,他们同样可以在依赖数组中使用。AMD的模块名规范是CommonJS模块名规范的超集。
2,单词须为驼峰形式,或者".",".."
4,模块名可以为 "相对的" 或 "顶级的"。如果首字符为"."或".."则为"相对的"模块名
5,顶级的模块名从根命名空间的慨念模块解析
6,相对的模块名从 "require" 书写和调用的模块解析
1,如果模块 "a/b/c" 请求的是 "../d", 那它找到的就是 "a/d"
2,如果模块 "a/b/c" 请求的是 "./e", 那它找到就是 "a/b/e"
第二个参数,dependencies,是个定义中模块所依赖模块的数组。
第三个参数,factory,为模块初始化要执行的函数或对象。如果为函数,它应该只被执行一次。如果是对象,此对象应该为模块的输出值。
如果工厂方法返回一个值(对象,函数,或任意强制类型转换为true的值),应该为设置为模块的输出值。
标签:
原文地址:http://www.cnblogs.com/branches/p/4869605.html