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 相关文章推荐
jquery复选框CHECKBOX全选、反选
Aug 30 Javascript
Wordpress ThickBox 点击图片显示下一张图的修改方法
Dec 11 Javascript
一个基于jquery的文本框记数器
Sep 19 Javascript
JS打开层/关闭层/移动层动画效果的实例代码
May 11 Javascript
jquery控制背景音乐开关与自动播放提示音的方法
Feb 06 Javascript
Jquery时间轴特效(三种不同类型)
Nov 02 Javascript
Jquery1.9.1源码分析系列(六)延时对象应用之jQuery.ready
Nov 24 Javascript
JavaScript添加随滚动条滚动窗体的方法
Feb 23 Javascript
Vue.js在使用中的一些注意知识点
Apr 29 Javascript
Js实现中国公民身份证号码有效性验证实例代码
May 03 Javascript
vue常用高阶函数及综合实例
Feb 25 Vue.js
vue实现书本翻页动画效果实例详解
Apr 08 Vue.js
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
成本8450万,票房仅2亿,口碑两极分化,又一部DC电影扑街了
2020/04/09 欧美动漫
PHP Session变量不能传送到下一页的解决方法
2009/11/27 PHP
Linux环境下php实现给网站截图的方法
2016/05/03 PHP
非常经典的PHP文件上传类分享
2016/05/15 PHP
详解PHP处理字符串类似indexof的方法函数
2017/06/11 PHP
PHP创建对象的六种方式实例总结
2019/06/27 PHP
PHP中16个高危函数整理
2019/09/19 PHP
js 3种归并操作的实例代码
2013/10/30 Javascript
兼容Firefox的Javascript XSLT 处理XML文件
2014/12/31 Javascript
JS实现简单的图书馆享元模式实例
2015/06/30 Javascript
javascript实现控制的多级下拉菜单
2015/07/05 Javascript
canvas红包照片实例分享
2017/02/28 Javascript
jquery submit()不能提交表单的解决方法
2017/04/24 jQuery
Vue的watch和computed方法的使用及区别介绍
2018/09/06 Javascript
Python random模块(获取随机数)常用方法和使用例子
2014/05/13 Python
Python实现代码统计工具(终极篇)
2016/07/04 Python
pandas带有重复索引操作方法
2018/06/08 Python
python实现自主查询实时天气
2018/06/22 Python
python实现爬取图书封面
2018/07/05 Python
python实现微信小程序用户登录、模板推送
2019/08/28 Python
关于sys.stdout和print的区别详解
2019/12/05 Python
PyQt5+Pycharm安装和配置图文教程详解
2020/03/24 Python
Kipling凯浦林美国官网:世界著名时尚休闲包袋品牌
2016/08/24 全球购物
全球速卖通巴西站点:Aliexpress巴西
2016/08/24 全球购物
Merrell美国官网:美国登山运动鞋品牌
2018/02/07 全球购物
Footshop法国:购买运动鞋
2020/01/19 全球购物
最新党员的自我评价分享
2013/11/04 职场文书
孝老爱亲模范事迹
2014/01/24 职场文书
医学生职业生涯规划书范文
2014/03/13 职场文书
给校长的建议书400字
2014/05/15 职场文书
影子教师研修方案
2014/06/14 职场文书
募捐感谢信
2015/01/22 职场文书
水知道答案观后感
2015/06/08 职场文书
Python中Permission denied的解决方案
2021/04/02 Python
SQL实现LeetCode(176.第二高薪水)
2021/08/04 MySQL
ICOM R71E和R72E图文对比解说
2022/04/07 无线电