如何理解闭包?
2016-06-02 09:27
232 查看
摘抄网上一个人的解释。
闭包很简单,就是在函数定义时把函数外部的环境打包进函数内,使得在函数体内可以访问到函数体外的环境(主要是访问函数体外的变量)
在环境(1)中只能访问到环境(1)的变量,但是环境(2)中能同时访问到环境(1)(2)中的变量。环境(3)中能同时访问到环境(1)(2)(3)中的变量。
函数在定义时,把函数体外部的环境全部打包进了函数,使得函数体内可以访问到函数体定义外面的环境。这个函数+所打包的外部环境就称之为闭包。
闭包很简单,就是在函数定义时把函数外部的环境打包进函数内,使得在函数体内可以访问到函数体外的环境(主要是访问函数体外的变量)
// 假设这里的环境为 (1) function(){ // 假设这里的环境为 (2) function(){ // 假设这里的环境为 (3) }; };
在环境(1)中只能访问到环境(1)的变量,但是环境(2)中能同时访问到环境(1)(2)中的变量。环境(3)中能同时访问到环境(1)(2)(3)中的变量。
函数在定义时,把函数体外部的环境全部打包进了函数,使得函数体内可以访问到函数体定义外面的环境。这个函数+所打包的外部环境就称之为闭包。
相关文章推荐
- 深入理解PHP之匿名函数
- 最后一次说说闭包
- Ruby中使用Block、Proc、lambda实现闭包
- LUA中的闭包(closure)浅析
- Lua中的闭包学习笔记
- C#中函数的创建和闭包的理解
- 深入理解javascript作用域和闭包
- javascript作用域和闭包使用详解
- 谈谈JavaScript中的函数与闭包
- 细品javascript 寻址,闭包,对象模型和相关问题
- JavaScript中的闭包原理分析
- 浅谈javascript中的闭包
- 学习javascript的闭包,原型,和匿名函数之旅
- javascript 闭包详解
- JavaScript 匿名函数和闭包介绍
- JavaScript 闭包深入理解(closure)
- 深入理解JavaScript 闭包究竟是什么
- 谈谈我对JavaScript原型和闭包系列理解(随手笔记8)
- 解决js函数闭包内存泄露问题的办法
- js闭包引起的事件注册问题介绍