- Objective: - Breadcrumb: # 概念阐释 ## 语义 通过导出和导入的语法将模块的代码引入到具体需要的文件中; ## 语法 ### 导出模块`export` ```js //ESM写法 export { toggleHiddenElement, changeToFunkyColor }; //CJS写法 module.exports = {checkInventory, processPayment, shipOrder}; ``` 将模块文件中的函数导出,用逗号隔开函数名称。 ```js export const toggleHiddenElement = (domElement) => {   // logic omitted... } ``` 也可以在单独函数前加`export` ### 导入模块`import` ```js //ESM写法 import { exportedResourceA, exportedResourceB } from './path/to/module.js'; // CJS写法 const  exportedResourceA = require('./path/to/module.js'); ``` ### 冲突命名 调用不同js文件,却有相同的命名时可以使用`as`关键字 ```js /* main.js */ import { greet as greetEspanol } from 'greeterEspanol.js'; import { greet as greetFrancais } from 'greeterFrancais.js'; greetEspanol(); // Prints: hola greetFrancais(); // Prints: bonjour ``` # 实例 # 相关内容 ## 文件夹路径 ### 相同文件夹下 `./filename` ![](https://image.harryrou.wiki/2024-01-18-CleanShot%202024-01-18%20at%2008.13.47%402x.png) ### 一个在主文件夹,一个在子文件夹 `./folderName/fileName` ![](https://image.harryrou.wiki/2024-01-18-CleanShot%202024-01-18%20at%2008.15.37%402x.png) ### 在不同的两个子文件夹 `../folderName/fileName` 先退出当前文件夹,再进入其他文件夹的文件 ![](https://image.harryrou.wiki/2024-01-18-CleanShot%202024-01-18%20at%2008.19.00%402x.png) # 问题 解释以下代码 ```js /* dom-functions.js */ // 模块文件的参数在具体调用时替换成具体的参数 const toggleHiddenElement = (domElement) => {     if (domElement.style.display === 'none') {       domElement.style.display = 'block';     } else {       domElement.style.display = 'none';     } } const changeToFunkyColor = (domElement) => {   const r = Math.random() * 255;   const g = Math.random() * 255;   const b = Math.random() * 255;   domElement.style.background = `rgb(${r}, ${g}, ${b})`; } //导出这份文件中的函数名称 export { toggleHiddenElement, changeToFunkyColor }; ``` ```js /* secret-messages.js */ // 在具体文件中import模块 import { toggleHiddenElement, changeToFunkyColor } from '../modules/dom-functions.js'; // 访问html标签 const buttonElement = document.getElementById('secret-button'); const pElement = document.getElementById('secret-p'); //添加监听事件,没有函数名称,调用模块的函数,并添加到具体的html标签上 buttonElement.addEventListener('click', () => {   toggleHiddenElement(pElement);   changeToFunkyColor(buttonElement); }); ``` # 问题答案 # 参考资料