1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| function module() { var something = 'cool'; var another = [1, 2, 3]; function doSomething() { console.log(something); } function doAnother() { console.log(another.join('!')); } return { doSomething: doSomething, doAnother: doAnother, }; }
var foo = module(); foo.doSomething(); foo.doAnother();
|
doSomething()和 doAnother()函数具有涵盖模块实例内部作用域的闭包,当这两个函数被传递到词法作用域外部时,依然可以访问和修改私有作用域。
ES6 的包机制
- export {app} 或者 export default app
- import {app} from '' 或者 import app from ''
在浏览器里测试的时候
1
| <script src="./bar.js" type="module"></script>
|
Node 的包机制
- module.exports={app} 或者 module.exports=app
- const {app}=require('') 或者 const app=require('')