闭包简述:
1.当一个函数访问另一个函数的局部变量,就会产生闭包
2.当内层函数访问了外部的函数的局部变量,就会产生闭包
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
// 当一个函数访问另一个函数的局部变量,就会产生闭包
// 当内层函数访问了外部的函数的局部变量,就会产生闭包
function outer() {
var count = 0
function inner() {
console.log('哈哈');
count++
console.log(count);
}
// window.inner = inner()
return inner
}
var fn = outer()
fn()
</script>
</body>
</html>
闭包存在的问题
闭包占用的内存是不会诶释放的,因此,如果滥用闭包,会造成内存泄漏问题。闭包很强大,但是只有在必须使用闭包的时候使用。
内存泄漏:通俗点就是指由于疏忽或者错误造成程序未能释放已经不再使用的内存,不再用到的内存却没有及时释放,从而造成内存上的浪费。