闭包:一个调用外层函数变量的函数
<script>
// 什么是闭包: 闭包就是函数, 内层函数 + 访问了外层函数的变量
// 闭包的作用: 可以让函数外面访问函数内部的变量 (不能直接访问,需要通过函数调用的形式)
// 闭包的应用: 数据私有化
function fn() {
let num = 10 // 只能在函数里面使用,外面看不到---- 数据私有化
return function g() {
num++
console.log(num);
}
}
const res = fn() // res就是一个函数
res() // 11 通过闭包,我们可以用函数调用的形式,去访问函数内部的变量
res() // 12
res() // 13
// num += 100 直接报错,因为它是私有变量,外面看不见,只能通过函数调用去访问
// console.log(num); // 我们之前学习的,在函数外面不能访问函数内部的变量,
// 通过全局变量的方式,实现调用一次函数,让变量值累加
let count = 10; // 这个变量是全局变量
function fn2() {
count++
console.log(count);
}
// 下面两行的打印分别是多少
fn2() // 第一次函数调用结束以后,全局变量count的值已经变为了 11
fn2() // // 第二次函数调用的时候,就是11开始
count += 100
console.log(count);
</script>