1如何产生闭包(条件)?
函数嵌套、内部函数引用外部函数的局部变量、使用内部函数
注意:函数变量提升的时候如果内部函数没有被使用,在预解析的过程中不会定义内部函数
2闭包到底是什么?
理解一:闭包是嵌套的内部函数(绝大数人)
理解二:包含被引用变量(函数)的对象(极少数人)
理解三“所谓闭包是一个引用关系,该引用关系存在于内部函数中,引用的是外部函数的变量的对象(深入理解)
3.闭包的作用
(1)延长外部函数变量对象的生命周期
(2)让函数外部可以操作(读写)到内部函数的数据(变量/函数)
(3)注意:浏览器为了性能后期将外部函数中不被内部函数使用的变量清除了
4.闭包的生命周期
产生:在函数定义执行完成时就已经产生了
死亡:在嵌套的内部函数成为来及对象时
5.闭包的优缺点
优点:延长外部函数变量对象的生命周期
缺点:延长外部函数变量对象的生命周期(占内存,如果不及时清除容易造成内存溢出,泄露)
6.使用闭包时候的注意:
(1)及时清除闭包
(2)让内部的函数成为垃圾对象----》内部函数身上没有指针指向