7. JS 需要封装
最后更新于:2022-04-01 03:51:14
## 7\. JS 需要封装
前些年我们了解了全局变量的风险,值得庆幸的是,现在有很多的方法来封装JS:
* [Immediately Invoked Function Expressions](https://en.wikipedia.org/wiki/Immediately-invoked_function_expression) (aka IIFE)
* [Revealing Modules](http://addyosmani.com/resources/essentialjsdesignpatterns/book/#revealingmodulepatternjavascript)
* [AMD](http://requirejs.org/docs/whyamd.html) (typically via [RequireJS](http://requirejs.org/))
* [CommonJS](http://www.sitepoint.com/understanding-module-exports-exports-node-js/) (used by [Node.js](https://nodejs.org/), use in browser via [Browserify](http://browserify.org/) or [Webpack](http://webpack.github.io/))
* [ES6 modules](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import#Browser_compatibility)
ES6模块是未来。好消息是,虽然在浏览器中还不能很好的支持,但你可以用 [Babel](https://babeljs.io/) 来使用它。
如果你不想 transpile, CommonJS可能是你最佳的选择。由于 Node 使用的 CommonJS 模式,所以你可以使用[npm](https://www.npmjs.com/) 来下载数千个包。CommonJS 不能在浏览器中运行,所以你可能需要 [Browserify](http://browserify.org/),[Webpack](http://webpack.github.io/), or [JSPM](http://jspm.io/).