AMD

 

    AMD(异步模块定义),规范提供了定义模块,异步加载模块的依赖的机制。

 

    规范只定义了一个函数“define”,它是全局变量。函数的描述为:

define(id?, dependencies?, factory);

 

    第一个参数,id,是个字符串,指的是定义模块的名字,是可选的。

 

    模块名规范

    模块名是用正斜杠分割的有意义单词的字符串

    单词须为驼峰形式,或者“.","..“

    模块名不允许文件扩展名的形式,如".js"

    模块名可以为”相对的“或”顶级的“。如果首字符为”."或".."则为相对的模块名

    顶级的模块名从根命名空间的概念模块解析

    相对的模块名从“require"书写和调用的模块解析

 

    如果Loader-Plugins被AMD规范的实现所支持,那么”!"用来分开加载器插件的模块名和插件的资源名。因为插件的资源名是非常自由的,资源名应该允许大多的字符。

 

    第二个参数,dependencies,依赖,是定义模块所依赖模块的数组。依赖模块必须根据模块的工厂方法优先级执行,并且执行的结果应该按照依赖数组中的位置顺序以参数的形式传入(定义中模块的)工厂方法中。

 

    依赖的模块名如果是相对的,应该解析为相对定义中的模块。

 

    规范定义了三种特殊的依赖关键字,如果”require“,”exports“或”module“出现在依赖列表中,参数应该按照CommonJS模块规范自由变量去解析。

 

    依赖参数是可选的,如果忽略此参数,它应该默认为["require”, "exports", "module"]。然而,如果工厂方法的长度属性小于3,加载器会选择以函数的长度属性定义的参数个数调用工厂方法。

 

    第三个参数,factory,工厂方法,为模块初始化要执行的函数或对象。如果为函数,它应该只被执行一次。如果是对象,此对象应该为模块的输出值。

 

    如果工厂方法返回一个值(对象,函数,或任意强制类型转换为true的值),应该为设置为模块的输出值。

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值