加入收藏 | 设为首页 | 会员中心 | 我要投稿 威海站长网 (https://www.0631zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 外闻 > 正文

什么是闭包?

发布时间:2021-03-12 17:45:42 所属栏目:外闻 来源:互联网
导读:、什么是闭包? 学习一个陌生的概念,我们首先要去明白是什么?也就是闭包是什么?要想完全掌握闭包,一定要清楚函数作用域、内存回收机制、作用域继承。我们就简单讲一下这几个概念。 1. 函数作用域 作用域的概念,形象描述的话,可以认为它是一个封闭的空间,

、什么是闭包?

学习一个陌生的概念,我们首先要去明白是什么?也就是闭包是什么?要想完全掌握闭包,一定要清楚函数作用域、内存回收机制、作用域继承。我们就简单讲一下这几个概念。

1. 函数作用域

作用域的概念,形象描述的话,可以认为它是一个封闭的空间,只允许在这个封闭的空间内进行一些操作,也将这个封闭空间称为私有作用域。在 JS 中,一个函数的执行就会在内存中创建一个私有作用域——封闭的空间。
 

在函数中定义一个变量,只能在函数这个私有作用域中使用(也就是封闭空间)。只要超出了这个作用域,就找不到该变量了。

而且函数执行完成后,这个私有作用域(封闭的空间)就会销毁。有一种情况它是不会销毁的,那就是“闭包”,后边会讲到。

2. 内存回收机制

内存回收机制就是不在用到的内存,我们系统就自动进行回收从而清理出空间供其他程序使用。那回收的规则是什么?
 

部函数引用着外部的函数的变量,外部的函数尽管执行完毕,作用域也不会销毁。从而形成了一种不销毁的私有作用域。

某一变量或者对象被引用着,因此在回收的时候不会释放它,因为被引用代表着被使用,回收器不会对正在引用的变量或对象回收的。

3. 作用域继承

所谓的作用域继承,就像是儿子可以继承父亲的财产一样。比如小鹿这里有一个大的盒子作为一个父级的作用域,然后在这个大的盒子里边放一个小的盒子,作为子作用域。我们规定可以在小盒子中获取到大盒子中的东西,大盒子不能获取小盒子里的东西就称为作用域继承。

(编辑:威海站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读