千家信息网

JavaScript闭包的含义是什么

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本文小编为大家详细介绍"JavaScript闭包的含义是什么",内容详细,步骤清晰,细节处理妥当,希望这篇"JavaScript闭包的含义是什么"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一
千家信息网最后更新 2026年11月02日JavaScript闭包的含义是什么

本文小编为大家详细介绍"JavaScript闭包的含义是什么",内容详细,步骤清晰,细节处理妥当,希望这篇"JavaScript闭包的含义是什么"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

一 、词法定义域 Lexical

Closure闭包是编程语言Lexical Scoping的专有属性,区别于dynamic scoping。即函数执行调用的是其在定义过程中的"变量定义域",而非其在调用时候的变量定义域。

Javascript的函数的初始状态不仅包括函数本体而且包括函数定义过程所在的定义域。

  • Like most modern programming languages, JavaScript uses lexical scoping. This means that functions are executed using the variable scope that was in effect when they were defined, not the variable scope that is in effect when they are invoked. In order to implement lexical scoping, the internal state of a JavaScript function object must include not only the code of the function but also a reference to the scope in which the function definition appears. This combination of a function object and a scope (a set of variable bindings) in which the function’s variables are resolved is called a closure in the computer science literature.

看下面的例子:

function makeCounter () {     let counter = 0;     return function() {return counter++;}; } let counter = makeCounter(); console.log(counter()); console.log(counter()); console.log(counter());  #+RESULTS: : 0 : 1 : 2

对这个嵌套函数而言,最有意思的一点是:当外部函数被调用返回后(这里是makeCounter()), 再也没有任何手段能够触及到 counter 这个变量。只有内嵌函数拥有专属权限抵达该变量。

二、Closure的标准定义

开发者通常应该都知道"闭包"这个通用的编程术语。

闭包 是指内部函数总是可以访问其所在的外部函数中声明的变量和参数,即使在其外部函数被返回(寿命终结)了之后。在某些编程语言中,这是不可能的,或者应该以特殊的方式编写函数来实现。但是如上所述,在 JavaScript 中,所有函数都是天生闭包的(只有一个例外,将在 "new Function" 语法 中讲到)。

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

读到这里,这篇"JavaScript闭包的含义是什么"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。

函数 闭包 变量 定义域 含义 文章 编程 内容 只有 属性 所在 编程语言 语言 过程 妥当 特殊 有意思 也就是 也就是说 位置 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技未来 中资互联网科技 嘟嘟瓜互联网科技 致聘互联网科技 深圳天众互联网科技公司 互联网科技英文翻译 互联网养老 桔豆科技 互联网科技股有哪些 丰台科技园 互联网公司 现代科技和互联网有关系吗 西藏七维空间互联网科技有限公司 互联网科技博主是什么意思 速维有品互联网信息科技(苏州)有限公司 青海科技产业互联网发展 智帮互联网科技公司最近动向 杭州披云加互联网科技有限公司 陕西云淼互联网科技公司 广州梦谷互联网科技有限公司领导 易租星互联网科技有限公司 米泉互联网科技专业怎么样 互联网科技园 新华互联网科技 美国互联网科技巨头监管 浩特互联网科技 广州慧亚互联网科技怎么样 小米互联网科技园设置 字节跳动和互联网科技 南通创西澳互联网科技有限公司 第三届互联网大会安防黑科技 互联网科技大佬云集
0