JavaScript中的闭包


Posted in Javascript onFebruary 24, 2016

1、什么是闭包

闭包,官方对闭包的解释是:一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。

简单的说,Javascript允许使用内部函数---即函数定义和函数表达式位于另一个函数的函数体内。而且,这些内部函数可以访问它们所在的外部函数中声明的所有局部变量、参数和声明的其他内部函数。当其中一个这样的内部函数在包含它们的外部函数之外被调用时,就会形成闭包。

闭包的特点

1 函数嵌套函数

2 函数内部可以引用外部的参数和变量

3 参数和变量不会被垃圾回收机制回收

一般函数执行完毕后,局部活动对象就被销毁,内存中仅仅保存全局作用域。但闭包的情况不同!

function fn(){
var a = ;
function fn(){
//可以访问fn中定义的a值
alert( a++ );
}
fn();
}
fn(); //
fn(); // 
function fn(){
var a = ;
function fn(){
//可以访问fn中定义的a值
alert( a++ );
}
return fn;//
}
var f = fn();
f(); // 执行完后a还在内存中
f(); //
f = null; //a被回收

以上所述是小编给大家介绍JavaScript中的闭包,希望对大家有所帮助!

Javascript 相关文章推荐
新页面打开实际尺寸的图片
Aug 25 Javascript
测试你的JS的掌握程度的代码
Dec 09 Javascript
js事件绑定快捷键以ctrl+k为例
Sep 30 Javascript
javascript函数特点实例分析
May 14 Javascript
js同源策略详解
May 21 Javascript
javascript js 操作数组 增删改查的简单实现
Jun 20 Javascript
浅谈JS继承_寄生式继承 & 寄生组合式继承
Aug 16 Javascript
jQuery判断是否存在滚动条的简单方法
Sep 17 Javascript
在vue中使用Autoprefixed的方法
Jul 27 Javascript
javascript将非数值转换为数值
Sep 13 Javascript
详解vue项目打包步骤
Mar 29 Javascript
解决vue项目F5刷新mounted里的函数不执行问题
Nov 05 Javascript
jQuery中判断对象是否存在的方法汇总
Feb 24 #Javascript
jquery中键盘事件小结
Feb 24 #Javascript
javascript实现九宫格相加数值相等
May 28 #Javascript
Javascript类型转换的规则实例解析
Feb 23 #Javascript
理解Javascript图片预加载
Feb 23 #Javascript
Bootstarp风格的toggle效果分享
Feb 23 #Javascript
javascript瀑布流式图片懒加载实例解析与优化
Feb 23 #Javascript
You might like
php 中英文语言转换类代码
2011/08/11 PHP
List the Codec Files on a Computer
2007/06/11 Javascript
Javascript表达式中连续的 && 和 || 之赋值区别
2010/10/17 Javascript
Jquery插件分享之气泡形提示控件grumble.js
2014/05/20 Javascript
JavaScript字符串对象replace方法实例(用于字符串替换或正则替换)
2014/10/16 Javascript
判断字符串的长度(优化版)中文占两个字符
2014/10/30 Javascript
使用JS画图之点、线、面
2015/01/12 Javascript
在javascript中随机数 math random如何生成指定范围数值的随机数
2015/10/21 Javascript
Nodejs中 npm常用命令详解
2016/07/04 NodeJs
JavaScript页面实时显示当前时间实例代码
2016/10/23 Javascript
webix+springmvc session超时跳转登录页面
2016/10/30 Javascript
微信小程序 Tab页切换更新数据
2017/01/05 Javascript
vue + element-ui实现简洁的导入导出功能
2017/12/22 Javascript
微信小程序icon组件使用详解
2018/01/31 Javascript
如何让微信小程序页面之间的通信不再变困难
2019/06/03 Javascript
利用layer实现表单完美验证的方法
2019/09/26 Javascript
[35:34]Liquid vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python中PIL安装简单教程
2016/04/21 Python
Flask核心机制之上下文源码剖析
2018/12/25 Python
pandas实现DataFrame显示最大行列,不省略显示实例
2019/12/26 Python
pytorch获取模型某一层参数名及参数值方式
2019/12/30 Python
python误差棒图errorbar()函数实例解析
2020/02/11 Python
Python打包模块wheel的使用方法与将python包发布到PyPI的方法详解
2020/02/12 Python
在Python中用GDAL实现矢量对栅格的切割实例
2020/03/11 Python
Python实现异步IO的示例
2020/11/05 Python
python爬虫用request库处理cookie的实例讲解
2021/02/20 Python
CSS+jQuery实现的在线答题功能
2015/04/25 HTML / CSS
美国电视购物:QVC
2017/02/06 全球购物
Volcom英国官方商店:美国殿堂级滑板、冲浪、滑雪服装品牌
2019/03/13 全球购物
英国123鲜花网站:123 Flowers
2019/07/07 全球购物
Linux内核产生并发的原因
2012/07/13 面试题
学生党员的自我评价范文
2014/03/01 职场文书
财务管理专业自荐书
2014/09/02 职场文书
2014年班组建设工作总结
2014/12/01 职场文书
企业党建工作总结2015
2015/05/26 职场文书
党务工作者主要事迹材料
2015/11/03 职场文书