闭包_2
1.函数的重复调用
  
   
每调用一次都会声明一个新的变量,所以每次都是1+1=2
js内部所做的事情:函数被调用后,声明一个新的变量,该变量就拥有一个使用计数器,初始使用次数为0,每使用一次加一,函数执行结束之后,计数器会置0 .
js的垃圾回收机制:当函数被调用执行且结束,变量使用结束,且计数器被置0,那么整个函数环境中的变量都会销毁。
2.如何逃过垃圾回收机制呢?
函数内部的函数如果没有被调用,那么垃圾回收机制就无法检测,那么这时候就无法销毁变量。
3.作用域链
当某个变量再自己的环境中没有找到,那么就会再上一层的环境中进行寻找,直到找到为止。
4.闭包函数的调用
  
   
嗯,每次的变量都没有被销毁,f1执行完毕,由于作用域链的存在,垃圾回收机制不敢销毁 未被调用函数 中的变量
(全局变量只有等所有可执行的代码执行完毕,才会销毁)
由于会有一些变量不销毁,所以闭包太多会大量占用内存空间。
<over>
                    
                
                
            
        
浙公网安备 33010602011771号