JavaScript 闭包揭秘:立即执行函数返回的闭包如何输出 10?
```javascript var outer = (function() { var a = 10; return function() { return a; }; })(); console.log(outer()); // 输出10 ``` 这段代码创建了一个立即执行的函数表达式(IIFE),它定义了一个局部变量`a`并返回了一个闭包。闭包是一个函数和它所在的词法作用域的组合。在这个例子中,闭包就是`outer`函数和它所在的词法作用域(即`outer`函数内部)。 `outer`函数返回的是一个内部函数,这个内部函数可以访问到`outer`函数的局部变量`a`。即使`outer`函数已经执行完毕并返回了,这个内部函数仍然可以访问到`a`,因为这个内部函数形成了一个闭包,它保留了对`a`的引用。 当我们调用`outer()`时,它会返回`a`的值,也就是10。这就是闭包的作用,它允许我们在函数外部访问函数内部的变量和函数。 ######[AI写代码神器 | 221点数解答 | 2023-11-09 01:06:30]
相关提问
- C 语言实现链表操作:创建、输出、删除及插入功能详解(字节豆包 | 534点数解答 | 2024-12-09 21:33:48)342
- C语言实现链表创建、输出、删除与插入操作的完整代码及注意要点(字节豆包 | 609点数解答 | 2024-12-18 12:18:21)361
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)345
- 50 分判断题大揭秘:变量、条件、循环与数组知识正误辨析(字节豆包 | 229点数解答 | 2025-12-21 19:15:16)64
- Python实现:轻松计算n阶数字矩阵主对角线之和(字节豆包 | 358点数解答 | 2025-12-08 12:25:06)75
- Python 实现:计算数字矩阵左上角数字之和(附代码及详解)(字节豆包 | 333点数解答 | 2025-12-08 17:52:36)82
- Python 巧算数字矩阵左上角数字之和,附代码与详细解释(字节豆包 | 387点数解答 | 2025-12-08 17:54:37)70
- 轻松搞定:计算数字矩阵主对角线之和的 C++ 实现(DeepSeek | 107点数解答 | 2025-12-29 12:22:27)50
- 编程助力禾木:判断数字 x 是否在 10^a 至 10^b 区间内(字节豆包 | 367点数解答 | 2026-02-07 18:34:36)26
- 编程助力禾木:判断数字 x 是否在 10^a 至 10^b 区间(字节豆包 | 368点数解答 | 2026-02-07 18:35:01)27
- Python 实现:带边界处理与验证的任意基数数字转换递归程序(字节豆包 | 198点数解答 | 2024-11-21 14:20:25)436
- Python 递归函数实现:将数字转换为指定基数的输出(百度文心 | 499点数解答 | 2024-11-22 09:58:55)339