开发者社区> 问答> 正文

闭包是什么

闭包是什么

展开
收起
问答小能手! 2021-02-10 17:08:51 4311 0
1 条回答
写回答
取消 提交回答
  • 来自昆仑山,真名陆离。

    简单来说,闭包就是指有权访问另一个函数作用域中的变量的函数。创建闭包最常见方式,就是在一个函数内部创建或返回另一个函数。 比如:

    var a = function () {
      var test = {};
      setTimeout(function () {
        console.log(test);
      }, 1000);
    }
    
    

    上面的例子中,test在a中定义,但在setTimeout的参数(函数)中对它保持了引用。当a被执行了,尽管a已经执行完(已经执行完),理论上来说a这个函数执行过程中产生的变量、对象都可以被销毁。但test由于被引用,所以不能随这个函数执行结束而被销毁,直到定时器里的函数被执行掉。

    2021-02-10 17:09:38
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
函数对象 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载