什么是闭包呢,笼统点说,在函数里面写函数就是闭包,对于js来说,在js里写的每一个函数都是一个闭包,
众所周知在浏览器的运行过程中会有一个window对象,我们写的每条函数都是window对象身上的一个属性,所以这就形成了闭包的条件,,在一个函数内写函数(window是父函数,其中我们写的函数都是它的子函数,所以在js里写的每一个函数都是一个闭包)
</head>
<body>
<h1>什么是闭包</h1>
</body>
<script>
function fn() {
//函数
let a = 123
return function() {
console.log(a) //实际调用的还是这里
}
}
const _fn = fn()
_fn() //这里是通过赋值的地址引用
</script>
</html>
这样我们就可以访问fn的堆引用,正确的输出a的值“123”
关于闭包的应用还是解决,函数避免被垃圾回收