闭包和作用域

作用域和作用域链

img

作用域是针对变量的,比如我们创建了一个函数a,函数A里面又包含了一个函数b,那么现在就有三个作用域:
全局作用域>函数a作用域>函数b作用域
作用域的特点就是,先在自己的变量范围中查找,如果找不到,就会沿着作用域往上找,这个查找的过程就叫作用域链

闭包的概念

闭包就是能够读取其他函数内部变量的函数。

由于在Javascript语言中,只有函数内部的子函数才能读取局部变量,因此可以把闭包简单理解成"定义在一个函数内部的函数"。

所以,在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。

闭包的用途

闭包可以用在许多地方。它的最大用处有两个,一个是前面提到的可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中。

posted @ 2020-12-04 10:38  TheWings  阅读(72)  评论(0编辑  收藏  举报