闭包

思考一个问题:一般的,函数内部能够轻易地访问到函数外部的变量,那么,函数外部怎么能够访问到函数内部呢?

用【闭包】

【闭包的本质】就是:连接函数内部和函数外部的桥梁。

我们之所以能够用闭包实现函数外部访问函数内部变量,是因为闭包实现了函数外部变量的永久化,即将函数外部变量永久性的存储到了内存中。

【内存泄漏】:上面提到,闭包会将变量永久的存储在内存中,大量使用闭包,会占用大量的内存,内存就被这样占用了,好像内存泄漏了一样。

闭包还能解决【变量污染】问题。

变量污染:如果全局定义了一个a变量,那么就不能再定义a变量,在工程中,我们往往需要定义若干多的变量,多就很难避免重复和杂乱,好像变量被污染了一样。而被闭包使用过的变量,也就是存储在外部函数的变量,外部函数一经执行,变量便被销毁,所以,不同的外部函数里是可以定义相同的变量的。

闭包的应用:防抖,节流

【防抖】:只执行最后一次。就像食堂阿姨的手,一抖再抖,但只会给你一勺。

【节流】:每隔一段时间执行一次。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容