js闭包的集大成者-模块
2021.03.18 Thu
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('')

检测到页面内容有更新,是否刷新页面