3、如不雅 X 不带路径
- a. 根据 X 地点的父模块,肯定 X 可能的安装目次。
- b. 依次在每个目次中,将 X 当成文件名或目次名加载。

1、如不雅 X 是内置模块(比如 require('http'))
- a. 返回该模块。
- b. 不再持续履行。
- //创建两个文件,module1.js 和 module2.js,并且让它们互相引用
- // module1.js
- exports.a = 1;
- require('./module2');
- exports.b = 2;
- exports.c = 3;
- // module2.js
- const Module1 = require('./module1');
- console.log('Module1 is partially loaded here', Module1);
留意事项
- 声明的变量,对外都是只读的。然则导出的是对象类型的值,就可修改。
- 导入不存在的变量,值为undefined。
在 module1 完全加载之前须要先加载 module2,而 module2 的加载又须要 module1。这种状况下,我们大年夜 exports 对象中能获得的就是在产生轮回依附之前的┞封部分。膳绫擎代铝闼楝只有 a 属性被惹人,因为 b 和 c 都须要在惹人 module2 之后才能加载进来。
Node 使这个问题简单化,在一个模块加载时代开端创建 exports 对象。如不雅它须要惹人其他模块,并且有轮回依附,那么只能部导惹人,也就是只能惹人产生轮回依附之前所定义的┞封部分。
AMD
AMD 是 Asynchronous Module Definition 的简称,即“异步模块定义”,是大年夜 CommonJS 评论辩论中出生的。AMD 优先照顾浏览器的模块加载场景,应用了异步加载和回调的方法。
AMD 和 CommonJS 一样须要脚本加载器,尽管 AMD 只须要对 define 办法的支撑。define 办法须要三个参数:模块名称,模块运行的依附数组,所有依附都可用之后履行的函数(该函数按照依附声明的次序,接收依附作为参数)。只有函数参数是必须的。define 既是一种引用模块的方法,也是定义模块的方法。
require 函数
main.js 作为全部应用的人口模块,我们应用 define 关键字声清楚明了该模块以及外部依附(没有生命模块名称);当我们履行该模块代码时,也就是履行 define 函数的第二个参数中定义的函数功能,其会在框架将所有的其他依附模块加载完毕后被履行。这种延迟代码履行的技巧也就包管了依附的并发加载。
RequireJS
RequireJS 是一个前端的模块化治理的对象库,遵守AMD规范,经由过程一个函数来将所有所须要的或者说所依附的模块实现装载进来,然后返回一个新的函数(模块),我们所有的关于新模块的营业代码都在这个函数内部操作,其内部也可无穷制的应用已经加载进来的以来的模块。
- <script data-main='scripts/main' src=http://developer.51cto.com/art/201801/'scripts/require.js'></script>
- //scripts下的main.js则是指定的主代码脚本文件,所有的依附模块代码文件都将大年夜该文件开端异步加载进入履行。
1、自力模块 不依附其他模块。直接定义:
- define({
- methodOne: function (){},
- methodTwo: function (){}});
- //等价于
- define(function (){
- return {
- methodOne: function
推荐阅读
【限时免费】岁尾最强一次云计算大年夜会,看传统、社区、互联网企业若何碰撞? 在上述课程中,我碰到了 Alon Burg——一名经验丰富的 web 开辟人员,我们刚好趣味相投。所认为了>>>详细阅读
本文标题:很全很全的JavaScript模块讲解,看了绝不后悔!
地址:http://www.17bianji.com/lsqh/40215.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示