不错呦!smile@林凯西,确保“准备文件”中的几个文件都有安装,S...您好,看了您这篇帖子觉得很有帮助。但是有个问题想请...我的修改过了怎么还被恶意注册呢 @jjjjiiii 用PJ快9年了,主要是A...PJ3啊,貌似很少有人用PJ了,现在不是WP就是z...@332347365,我当时接入时错误码没有-10...楼主,ChkValue值应为-103是什么意思呢?...大哥 你最近能看到我发的信息,请跟我联系,我有个制...
ES6学习笔记:Module模块
编辑:dnawo 日期:2022-04-15
ES6模块功能主要由两个命令构成:export和import,export命令用于定义模块的对外接口,import命令用于加载模块。
export命令定义模块
下边我们定义一个简单的Module模块(mod.js),一个文件就是一个模块,所有要提供给模块外部脚本调用的对外接口(变量、函数、对象、类等)必须加上export命令,否则外部脚本无法调用:
对外接口也可以先声明,再export:
还可以在模块文件末尾一起export,更直观:
注意:export命令可以出现在模块的任何位置,但只能处于模块顶层,如果处于块级作用域内将会报错。export命令后面只能跟声明语句,"export let name"和"let name;export {name}"这两种写法都可以,若写成export name(没有大括号)会报错。
import命令加载模块
定义好模块,我们就可以使用import命令加载模块并使用其提供的接口了,注意import的变量名必须和export的对外接口名称一一对应:
也可以不逐个指定变量名,使用星号(*)将模块所有接口加载进来赋值给一个对象:
export和import重命名
export对外接口名和import变量名都可以使用as进行重命名:
export default命令
export default命令用于设置模块的默认对外接口:
注意export default后面的对外接口名称不需要大括号,import后面的变量名可以不和接口名称一样,也就是不需要知道确切的接口名称,用任意变量名都是可以的:
Module模块嵌套
Module模块可以在一个模块中嵌套另一个模块,例如在mod2.js中嵌套mod.js模块:
也可以直接export:
这种写法省略了import,mod2.js中不能使用mode.js的对外接口,只起到转发作用。
export命令定义模块
下边我们定义一个简单的Module模块(mod.js),一个文件就是一个模块,所有要提供给模块外部脚本调用的对外接口(变量、函数、对象、类等)必须加上export命令,否则外部脚本无法调用:
复制内容到剪贴板
程序代码

//export变量
export let name = 'Jack';
//export函数
export function hello(){
console.log('hello,' + name);
}
export let name = 'Jack';
//export函数
export function hello(){
console.log('hello,' + name);
}
对外接口也可以先声明,再export:
复制内容到剪贴板
程序代码

//export变量
let name = 'Jack';
export {name};
//export函数
function hello(){
console.log('hello,' + name);
}
export {hello};
let name = 'Jack';
export {name};
//export函数
function hello(){
console.log('hello,' + name);
}
export {hello};
还可以在模块文件末尾一起export,更直观:
复制内容到剪贴板
程序代码

let name = 'Jack';
function hello(){
console.log('hello,' + name);
}
export {name, hello};
function hello(){
console.log('hello,' + name);
}
export {name, hello};
注意:export命令可以出现在模块的任何位置,但只能处于模块顶层,如果处于块级作用域内将会报错。export命令后面只能跟声明语句,"export let name"和"let name;export {name}"这两种写法都可以,若写成export name(没有大括号)会报错。
import命令加载模块
定义好模块,我们就可以使用import命令加载模块并使用其提供的接口了,注意import的变量名必须和export的对外接口名称一一对应:
复制内容到剪贴板
程序代码

<script type="module">
import {name, hello} from './mod.js';
console.log(name);
hello();
</script>
import {name, hello} from './mod.js';
console.log(name);
hello();
</script>
也可以不逐个指定变量名,使用星号(*)将模块所有接口加载进来赋值给一个对象:
复制内容到剪贴板
程序代码

<script type="module">
import * as mod from './mod.js';
console.log(mod.name);
mod.hello();
</script>
import * as mod from './mod.js';
console.log(mod.name);
mod.hello();
</script>
export和import重命名
export对外接口名和import变量名都可以使用as进行重命名:
复制内容到剪贴板
程序代码

let name = 'Jack';
function hello(){
console.log('hello,' + name);
}
export {name as n, hello};
function hello(){
console.log('hello,' + name);
}
export {name as n, hello};
复制内容到剪贴板
程序代码

<script type="module">
import {n, hello as h} from './mod.js';
console.log(n);
h();
</script>
import {n, hello as h} from './mod.js';
console.log(n);
h();
</script>
export default命令
export default命令用于设置模块的默认对外接口:
复制内容到剪贴板
程序代码

let name = 'Jack';
function hello(){
console.log('hello,' + name);
}
export default hello;
function hello(){
console.log('hello,' + name);
}
export default hello;
复制内容到剪贴板
程序代码

<script type="module">
import hello from './mod.js';
hello();
</script>
import hello from './mod.js';
hello();
</script>
注意export default后面的对外接口名称不需要大括号,import后面的变量名可以不和接口名称一样,也就是不需要知道确切的接口名称,用任意变量名都是可以的:
复制内容到剪贴板
程序代码

<script type="module">
import todo from './mod.js';
todo();
</script>
import todo from './mod.js';
todo();
</script>
Module模块嵌套
Module模块可以在一个模块中嵌套另一个模块,例如在mod2.js中嵌套mod.js模块:
复制内容到剪贴板
程序代码

import {name, hello} from './mod.js'
export {name, hello}
export {name, hello}
也可以直接export:
复制内容到剪贴板
程序代码

export {name, hello} from './mod.js'
这种写法省略了import,mod2.js中不能使用mode.js的对外接口,只起到转发作用。






评论: 0 | 引用: 0 | 查看次数: 1802
发表评论
请登录后再发表评论!