今天来复习一下amd规范
此规范目前来说也是基本不会用了,逐渐埋没在前端的历史长河中
require.js实现了amd规范
要使用amd规范,需要在html页面中书写以下代码:
<!-- data-main属性得值为入口文件得路径 -->
<script data-main="./index.js" src="./require.js"></script>
在amd中,提供了define函数,该函数接受三个参数。分别是模块的id,模块的依赖项,一个回调函数(该函数中是该模块的代码)或者一个对象
define(id?: String, dependencies?: String[], factory: Function|Object);
前两个参数都是可选的。如果第三个参数传的不为string,array,function
则会把第三个参数当成该模块的导出内容。在其他模块导入该模块时,拿到的数据即为该模块的第三个参数的值。
细节:
- 如果前两个参数按照类型传了的情况下,第三个参数只要不为函数,则都会被当成该模块的导出值。
- 如果第一个参数按照类型传了的情况下,第二个参数如果不是数组类型也不是函数,那么第二个参数会被当成该模块的导出值。
- 第一个参数如果不是字符串,也不是数组,也不是函数,则会被当成该模块的导出值。
其实还有一些其他的情况,比如第一个参数传的是数组,那么第二个参数传递的内容会被当成是第三个参数的内容,第三个参数就不会被处理了。
还有一种情况就是如果没有传递依赖项,第三个参数是一个函数的情况下,会给这个函数传递三个参数,分别是
require,exports,module
,这个时候,函数的内部代码就跟commonjs规范一样了
网友评论