闭包

作者: 禾苗种树 | 来源:发表于2022-05-09 16:44 被阅读0次
    • 词法环境
      在js中,每个运行的函数,代码块,及整个脚本都有一个内部关联对象(隐藏的)叫做词法环境 lexical environment
      词法环境由两部分组成
      1.环境记录
      2.对外部词法环境的引用(记录),与外部代码相关联

    • 闭包
      一个记住其外部变量并可以访问这些变量的函数(因为js自带的词法环境使在脚本中的所有变量,函数都都有迹可循)

    JavaScript 中的函数会自动通过隐藏的 [[Environment]] 属性记住创建它们的位置,所以它们都可以访问外部变量。

    前端开发者通常会被问到“什么是闭包?”,正确的回答应该是闭包的定义,并解释清楚为什么 JavaScript 中的所有函数都是闭包的,以及可能的关于 [[Environment]] 属性和词法环境原理的技术细节。

    注意:通常,函数调用完成后,会将词法环境和其中的所有变量从内存中删除。因为现在没有任何对它们的引用了。与 JavaScript 中的任何其他对象一样,词法环境仅在可达时才会被保留在内存中。

    相关文章

      网友评论

          本文标题:闭包

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