美文网首页
前端经典必问面试题---谈谈对闭包的理解。

前端经典必问面试题---谈谈对闭包的理解。

作者: 鸽屿_ | 来源:发表于2020-11-07 08:58 被阅读0次

    首先我们说说回答的方向

    1.先回答闭包是什么
    2.闭包怎么样
    3.闭包怎么用
    4.自己平时在公司里是怎么用的

    那么接下来我们分4个模块去回答:

    一、闭包是什么

    闭包,在javascript高级程序设计中定义如下:

    “闭包是有权访问其他函数作用域的局部变量的一个函数”

    当然,我们还需要做到补充以下关于闭包的理解

    在原生js中,函数中变量的作用域仅属于它所在的函数作用域,在函数执行完后将会被回收机制清理,内存也会被收回,但是我们如果在里面添加了一个闭包,那么通过闭包可以访问上级作用域的原因,即使上级函数执行完,作用域也不会销毁,在此处的子函数便是闭包,此时它具有了范文上级作用域的权限,即使上级函数执行完,上级函数的作用域也不会销毁。

    二、闭包怎么样

    在此处,我们应该从闭包解决了哪些问题,有什么有点和缺点来回答,阮一峰在b

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

    当然,我们也进行自己的补充

    优点:闭包可以缓存上级作用域,因此就使得函数外部打破了“函数作用域”束缚,可以访问函数内部的变量。在之前项目中我们使用的AJAX请求成功后的回调函数就是闭包的应用,它正是利用了闭包的上述访问上级作用域的特性,在回调函数中就拥有了它的上级函数作用域的访问和操作能力,因此,我们便不需要使用钩子函数去操作上级函数作用域内部的变量了
    一句话总结:闭包两个作用,一是读取函数内部的变量,二是让这些变量的值始终存在内存之中。

    三、闭包的使用

    接下来我们开始谈及闭包的具体使用场景了。

    闭包在之前的项目中,最长使用的场景有1.Ajax请求成功的回调,在闭包中对上级函数作用域中请求到的数据的访问。

    
    

    2.事件绑定的回调

    相关文章

      网友评论

          本文标题:前端经典必问面试题---谈谈对闭包的理解。

          本文链接:https://www.haomeiwen.com/subject/vulfbktx.html