JavaScript 闭包
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
let a = 2;
function biBao() {
console.log(a)
}
function test() {
let a = 1;
return function () {
console.log(a)
}
}
biBao();
test()();
</script>
</body>
</html>
1、解释
函数执行时,会形成一个私有上下文(词法作用域),执行完之后,上下文中使用的对象,如果不在该上下文中定义,那么当前上下文就不能被释放,导致闭包
2、作用
防止全局变量污染
访问函数内部变量
3、实例
避免变量污染
let n = 2; function test() { let n = 3; return function () { n++; console.log(n) } } let biBaoFunc = test(); biBaoFunc(); biBaoFunc(); biBaoFunc();
4、缺点
占内存
可能会内存泄漏

浙公网安备 33010602011771号