首先我们说说回答的方向
1.先回答闭包是什么
2.闭包怎么样
3.闭包怎么用
4.自己平时在公司里是怎么用的
那么接下来我们分4个模块去回答:
一、闭包是什么
闭包,在javascript高级程序设计中定义如下:
“闭包是有权访问其他函数作用域的局部变量的一个函数”
当然,我们还需要做到补充以下关于闭包的理解
在原生js中,函数中变量的作用域仅属于它所在的函数作用域,在函数执行完后将会被回收机制清理,内存也会被收回,但是我们如果在里面添加了一个闭包,那么通过闭包可以访问上级作用域的原因,即使上级函数执行完,作用域也不会销毁,在此处的子函数便是闭包,此时它具有了范文上级作用域的权限,即使上级函数执行完,上级函数的作用域也不会销毁。
二、闭包怎么样
在此处,我们应该从闭包解决了哪些问题,有什么有点和缺点来回答,阮一峰在b
在本质上,闭包就是将函数内部和外部连接起来的一座桥梁。
当然,我们也进行自己的补充
优点:闭包可以缓存上级作用域,因此就使得函数外部打破了“函数作用域”束缚,可以访问函数内部的变量。在之前项目中我们使用的AJAX请求成功后的回调函数就是闭包的应用,它正是利用了闭包的上述访问上级作用域的特性,在回调函数中就拥有了它的上级函数作用域的访问和操作能力,因此,我们便不需要使用钩子函数去操作上级函数作用域内部的变量了
一句话总结:闭包两个作用,一是读取函数内部的变量,二是让这些变量的值始终存在内存之中。
三、闭包的使用
接下来我们开始谈及闭包的具体使用场景了。
闭包在之前的项目中,最长使用的场景有1.Ajax请求成功的回调,在闭包中对上级函数作用域中请求到的数据的访问。
2.事件绑定的回调
网友评论