对于前端人员面试,出现频率最多也是让人最头疼的就是面试官说:“请简单谈一谈你对闭包的理解”。对于这一个几乎快被人问烂的问题,屡屡出现在我们面试或被面试的过程中的原因很简单--我们一直都在接触闭包,却很少去正确地对待它。

因为闭包是因为JS的一些语言特性而形成的,所以在谈它之前我们首先要了解一下的知识点

1.执行上下文
2.作用域
3.垃圾回收机制
4.函数嵌套

本文只会简单的谈涉及到的内容,如果知识点有遗漏的同学可以自行google,接下来让我们进入正题!

1. 什么是闭包?

关于什么是闭包让我们先看看《高级程序设计》和《JavaScript权威指南》中的说法:

《高程》: 闭包是指有权访问另一个函数作用域中的变量的函数,创建闭包的常见方式,就是在一个函数内部创建另一个函数。

延伸阅读

学习是年轻人改变自己的最好方式-Java培训,做最负责任的教育,学习改变命运,软件学习,再就业,大学生如何就业,帮大学生找到好工作,lphotoshop培训,电脑培训,电脑维修培训,移动软件开发培训,网站设计培训,网站建设培训学习是年轻人改变自己的最好方式