今天在codecademy上面学完了JavaScript关于模块(Module)的那一章,小做总结:
对Module进行输出主要有两种方式,一种以node.js的module.exports,另外一种是ES6新的一种syntax,这里面又分default export/import 和 named export/import。
我们先说如何使用module.exports
- 创建一个表示这个模块的对象
- 添加方法或者属性到这个对象中
- 输出对象
实现代码如下:
let Menu = {}; /** create an object to represent the module */
Menu.food = 'Lobster'; /** Add property to the module object */
module.exports = Menu;
第二种方法是无需包装,直接在module.exports后面写这个对象的方法,或者里面的属性。
实现代码如下:
module.exports = {
food: 'Lobster',
getFood: function() {
return this.food;
}
};
这两种方法效果是一样的。接下来我们讲import。import其实也十分简单,主要步骤为:
- 用require()来确定需要引入的module,并且将它的值赋予给一个变量
- 然后就可以在program中使用这个module了
代码如下:
const Menu = require(./menu.js)
注意: 这里const的名字Menu可以为任何你想选的名字。.js的文件后缀可以省略。
用ES6的syntax来对module进行导入和导出:
(注意,ES6对很多浏览器不一定兼容,需考虑用npm转换成ES5的问题)
- export default
代码很简单,如下:
let Menu = {};
export default Menu;
导入的方式:
import Menu from "./menu";
- Named Exports
顾名思义,就是直接通过变量名直接导出。
let people = "";
function getAge() {};
export {people, getAge};
引入的步骤如下:
import {people, getAge} from "./people";
如果这两个变量有哪个你不想导入,直接无视即可,括号内填你想引入的变量就好了。
本人尚在JS学习的初级阶段,如有不对,请多多指教。