什么是闭包,闭包的作用
2016-04-15 23:05
246 查看
一、变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域。 变量的作用域无非就是两种:全局变量和局部变量。 Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量。 二、如何从外部读取局部变量? 出于种种原因,我们有时候需要得到函数内的局部变量。但是,前面已经说过了,正常情况下,这是办不到的,只有通过变通方法才能实现。 那就是在函数的内部,再定义一个函数。 三、闭包的概念 上一节代码中的f2函数,就是闭包。 各种专业文献上的“闭包”(closure)定义非常抽象,很难看懂。我的理解是,闭包就是能够读取其他函数内部变量的函数。 由于在Javascript语言中,只有函数内部的子函数才能读取局部变量,因此可以把闭包简单理解成“定义在一个函数内部的函数”。 所以,在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。 --------------------------------------------------------------------------------------------------------b 四、闭包的用途 闭包可以用在许多地方。它的最大用处有两个,一个是前面提到的可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中。
相关文章推荐
- Ubuntu登录公司邮箱(Exchange)
- 使用cmake的时候,出现 CMake Error CMAKE_CXX_COMPILER not set错误
- 销售排行榜
- 海空一体战——军种协同应对反介入和区域拒止挑战
- Android 静态广播和动态广播接收顺序
- Matlab学习笔记 figure函数
- Java使用JDBC连接MySQL数据库
- JAVA8 十大新特性详解
- 程序员第45天
- Matlab学习笔记 figure函数
- 老码农的技术理想
- Android中关联源码遇到的问题
- 爆打团队 2016.04.15 站立会议
- 各语言生成随机数
- MZSelectableLabel使用
- 使用word2vec对新浪微博进行情感分析和分类
- 单点接地和多点接地
- 如何将js获取的变量付给jsp中表单的action
- 转:树莓派使用命令行开发Arduino
- impala