- function v1() { ... }
- function v2() { ... }
- export {
- v1 as streamV1,
- v2 as streamV2,
- v2 as streamLatestVersion};
- //膳绫擎代码应用as关键字,重定名了函数v1和v2的对外接口。重定名后,v2可以用不合的名字输出两次。
2、 须要特别留意的是,export敕令规定的是对外的接口,必须与模块内部的变量建立一一对应关系。
- // 报错
- export 1;
- // 报错
- var m = 1;
- export m;
- //膳绫擎两种写法都邑报错,因为没有供给对外的接口。第一种写法直接输出1,第二种写法经由过程变量m,照样直接输出1。1只是一个值,不是接口。
- // 写法一
- export var m = 1;
- // 写法二
- var m = 1;
- export {m};
- // 写法三
- var n = 1;
- export {n as m};
//膳绫擎庞种写法都是精确的,规定了对外的接口m。其他脚本可以经由过程这个接口,取到值1。它们的本质是,在接口名与模块内部变量之间,建立了一一对应的关系。
3、最后,export敕令可以涌如今模块的任何地位,只要处于模块顶层就可以。如不雅处于块级感化域内,就会报错,接下来说的import敕令也是如斯。
- function foo() {
- export default 'bar' // SyntaxError
- }
- foo()
导入import
1、 import敕令接收一对大年夜括号,琅绫擎指定要大年夜其他模块导入的变量名。大年夜括号琅绫擎的变量名,必须与被导入模块(profile.js)对外接口的名称雷同。如不雅想为输入的变量从新取一个名字,import敕令要应用as关键字,将输入的变量重定名。
- import { lastName as surename } from './profile';
2、import后面的from指定模块文件的地位,可所以相对路径,也可所以绝对路径,.js路径可以省略。如不雅只是模块名,不带有路径,那么必须有设备文件,告诉 JavaScript 引擎该模块的地位。
- foo();
- import { foo } from 'my_module';
- //膳绫擎的代码不会报错,因为import的履行早于foo的调用。这种行动的本质是,import敕令是编译阶段履行的,在代码运行之前。
4、因为import是静态履行,所以不克不及应用表达式和变量,这些只有在运行时才能获得结不雅的语法构造。
推荐阅读
【限时免费】岁尾最强一次云计算大年夜会,看传统、社区、互联网企业若何碰撞? 在上述课程中,我碰到了 Alon Burg——一名经验丰富的 web 开辟人员,我们刚好趣味相投。所认为了>>>详细阅读
本文标题:很全很全的JavaScript模块讲解,看了绝不后悔!
地址:http://www.17bianji.com/lsqh/40215.html
1/2 1

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