- Objective: 用对象的导出更加方便
- Breadcrumb:
# 概念阐释
## 语义
每个模块都有一个可以导出**默认**的选项,通常但不仅限于将模块中的对象使用默认,也可以将所有函数写出一个[[JavaScript 对象]]`resources`,然后默认导出对象。
## 语法
### 导出
```js
const resources = {
valueA,
valueB
}
export { resources as default };
//shorthand写法,没有花括号
export default resources;
```
### 导入
如果在输出时用了默认导出就不能使用函数名称导入了。
```js
import {default as resources} from './module.js'
//shorthand写法,没有花括号
import resources from './module.js'
const{valueA, valueB} = resources;
//也可以用模块名称来引入,模块名名称符合JS写法
import module from './module.js'
```
这里`const{valueA, valueB} = resources;`用的是[[js 表达式 Destructured Assignment 解构赋值]]
# 实例
# 相关内容
# 问题
1. 写出默认导出公式和默认导入公式
```js
function changeText(domElement, newText) {
domElement.innerHTML = newText;
}
function changeToFunkyColor(domElement) {
const r = Math.random() * 255;
const g = Math.random() * 255;
const b = Math.random() * 255;
domElement.style.color = `rgb(${r}, ${g}, ${b})`;
}
```
# 问题答案
```js
/* dom-functions.js */
//将函数创建为一个对象
const resources = {
changeText,
changeToFunkyColor
}
//导出
export default resources;
//导入
import resources from 'dom-functions.js';
const{changeText,changeToFunkyColor} = resources;
//文件名导入
import domFunctions from 'dom-functions.js';
const{changeText,changeToFunkyColor} = resources;
```
# 参考资料