有人说放下过去是什么感觉,我想大概是大火烧了自己的房子,明知道是家但是回不去了,你也不得不走了,放下的过程可能很痛,但是放下后你就是在拥抱你的余生。
想到这句话就想着谈谈js的闭包了,都知道js的内存的释放是浏览器来做的,浏览器会定期的寻找js的没用到的变量进行回收,当然不同浏览器的周期时间不同。当然有好多情况浏览器是不进行内存回收的,比如js的全局变量,定时器 闭包等等,下面就说说闭包。
闭包跟上面的那句话有什么关联,当然我不会告诉你是我牵强附会上去的,但想了想他们还是有丝丝联系,闭包就是浏览器放不下的家,函数执行完浏览器要放一把大火把过去都烧掉,为余生留下空间,但是因为闭包占用了函数的变量,这个时候浏览器就会放不下,不忍心所以他就会造成内存泄漏,这也就是闭包会造成浏览器的内存的泄漏原理。现在理解的闭包就是函数执行会形成一个私有的作用域(家),保护里面的变量不会被外界干扰。
function t(){
var n=0
return function(){
return ++n
}
}