请老师指教一下我对闭包的理解
来源:6-3 什么是闭包?闭包会用在哪里?

Kywane
2022-02-07
翻阅了挺多文章,大概有了一个对闭包的初步理解,如果有不对的地方,还请老师可以指正。
闭包的触发条件:简单来说是两点 1.函数作为返回值 2.函数作为参数进行传递
闭包到底是什么:闭包的本质其实就是个函数,但这个函数绑定了一个上下文环境
为什么要用闭包,闭包的意义是什么:可以代码封装成一个闭包形式,用特定的方法管理私有变量和私有方法,将变量的变化封装在安全的环境当中。
闭包的使用场景:比如一个计数器
因为函数中的作用域仅供自己所有,外部无法直接的去访问函数内部中的变量或方法,且函数执行后,会将其中的变量进行销毁,而闭包这样的方式,通过作用域链从内部函数到外部函数向上层作用域逐一查找的方式获取外部函数中的变量,外部函数再将其进行返回,赋值给外部的一个方法,这样就可以进行对函数内部私有变量和方法的管理和操作,而闭包的最大特性就是如果内部函数引用或访问了外部函数的某个变量,那么这个变量将会和内部函数一同存在,不会被销毁,直至被访问的这个函数被销毁时,这个变量才会被释放,所以这就方便我们可以在内存中维持一个变量,做缓存,或者是保护函数的变量安全,实现封装。 但缺点就是闭包内部资源无法自动释放,会造成一定的内存泄漏。
这是我的个人理解,有不对的地方烦请老师可以指正
写回答
1回答
-
双越
2022-02-08
理解的很好!
而且,能学完之后写一些笔记、总结,这种学习方法也非常好!
012022-02-08
相似问题