10、如何理解闭包?

42 阅读1分钟

定义:使用了父函数变量的子函数,在父函数外被使用,则形成了闭包。

问题:内存泄漏,因为函数内的变量是跟着函数调用时创建,调用完销毁。但闭包导致函数内部变量在外面使用中,那函数就不能销毁,也就让该变量一直存在内存中了,无法被垃圾回收,久了后会占用大量内存。

前置知识:如何理解 JS 的单线程? - 掘金

白话:桌 A 的客人 a 跑到桌 B 去吃饭了,那导致桌 A 的人吃完后还要在那等着客人 a 回来然后一起走(关系好),那如果客人 a 在桌 B 吃的慢玩的嗨(E 人),那桌 A 就一直等到,一直占着桌子,也没法去清理(客人都没走),如果这种事情多了,那餐馆的桌子就不够了。