闭包
函数的高级用法 -- 闭包
闭包形成的条件: 1.有函数嵌套,内层函数被返回(显式,隐式) 2.内层函数访问外层函数私有变量 3.内层函数被引用
闭包的作用: 1.生成不会被销毁的执行空间,生成块作用域。缺点:占用内存空间 2.外层函数可以访问内层函数的私有变量 3.设计模式中使用闭包
闭包的写法:
```<script>
// let inner
// function outer() {
// let num = 100
// //显示闭包写法
// return function () {
// console.log('num ', num);
// }
// }
// outer()
// inner()
let inner
function outer() {
let num = 100
//隐式闭包写法
inner = function () {
console.log('num ', num);
}
}
outer()
inner()
//自调用函数写法
let fn = (function () {
let num = 100
return function () {
console.log('num ', num);
}
})()
fn()
</script>