【前端面试】讲解下闭包是什么?

程序猿 2021-03-31 20:03:55 1692浏览 加载中

答、简单的说,作用域是针对变量的,比如我们创建一个函数 a1,函数里面又包了一个子函数a2.此时就存在三个作用域:

全局作用域、a1作用域、a2作用域;即全局作用域包含了a1的作用域,a2的作用域包含了a1的作用域。

当a1在查找变量的时候会先从自身的作用域区查找,找不到再到上一-级 a2的作用域查找,如果还没找到就到全局作用域区查找,这样就形成了一个作用域链。

理解闭包首先要理解,js 垃圾回收机制,也就是当一个函数被执行完后,其作用域会被收回,如果形成了闭包,执行完后其作用域就不会被收回。

如果某个函数被他的父函数之外的一个变量引用,就会形成闭包。

闭包的作用,就是保存自己私有的变量,通过提供的接口(方法)给外部使用,但外部不能直[接访问该变量.

最后修改:2024-12-23 08:25:47

非特殊说明,本博所有文章均为博主原创。