官术网_书友最值得收藏!

Modules

Modules provide a way to encapsulate your code and create privacy. In object-oriented languages, we usually use classes for this. However, I actually believe that this is an anti-pattern rather than a good practice. Classes should be used where inheritance is desired and not just to structure your code.

I'm sure that you've encountered a lot of different module patterns in JavaScript already. One of the most popular ones that creates privacy using a function closure of an immediately invoked function expression (IIFE) is probably the revealing module pattern. If you'd like to read more about this and maybe other great patterns, I recommend the book Learning JavaScript Design Patterns, by Addy Osmani.

Within ECMAScript 6, we can now use modules to serve this purpose. We simply create one file per module, and then we use the import and export keywords to connect our modules together.

Within the ECMAScript 6 module specification, we can actually export as many things as we like from each module. We can then import these named exports from any other module. We can have one default export per module, which is especially easy to import. Default exports don't need to be named, and we don't need to know their name when importing them:

import SomeModule from './some-module.js'; 
var something = SomeModule.doSomething();
export default something;

There are many combinations on how to use modules. We will discover some of these together while working on our task management application during the upcoming chapters. If you'd like to see more examples on how to use modules, I can recommend the Mozilla Developer Network documentation (https://developer.mozilla.org) on the import and export keywords.

主站蜘蛛池模板: 呼伦贝尔市| 巢湖市| 鄄城县| 庆阳市| 葫芦岛市| 松滋市| 滨州市| 阿鲁科尔沁旗| 安福县| 苗栗市| 贵定县| 德江县| 江阴市| 房产| 普格县| 石台县| 玛曲县| 渝中区| 沙坪坝区| 榕江县| 龙川县| 中方县| 西城区| 逊克县| 错那县| 太谷县| 灌南县| 永城市| 金昌市| 丰台区| 奈曼旗| 收藏| 西乌| 巴林右旗| 项城市| 河南省| 泉州市| 东明县| 金湖县| 旺苍县| 方城县|