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,radio是否选中的判断代码
Mar 20 Javascript
基于jquery插件实现常见的幻灯片效果
Nov 01 Javascript
js判断登录与否并确定跳转页面的方法
Jan 30 Javascript
深入理解JavaScript系列(46):代码复用模式(推荐篇)详解
Mar 04 Javascript
jQuery自定义滚动条完整实例
Jan 08 Javascript
jQuery插件实现适用于移动端的地址选择器
Feb 18 Javascript
JS工作中的小贴士之”闭包“与事件委托的”阻止冒泡“
Jun 16 Javascript
需要牢记的JavaScript基础知识
Sep 25 Javascript
Javascript动画效果(3)
Oct 11 Javascript
JS判断两个对象内容是否相等的方法示例
Apr 10 Javascript
页面缩放兼容性处理方法(zoom,Firefox火狐浏览器)
Aug 29 Javascript
elementUI多选框反选的实现代码
Apr 03 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中的函数-- foreach()的用法详解
2013/06/24 PHP
php session实现多级目录存放实现代码
2016/02/03 PHP
PHP 实现浏览记录并按日期分组
2017/05/11 PHP
PHP+MySQL使用mysql_num_rows实现模糊查询图书信息功能
2018/05/31 PHP
JavaScript 更严格的相等 [译]
2012/09/20 Javascript
无缝滚动js代码通俗易懂(自写)
2013/06/19 Javascript
js的.innerHTML = ""IE9下显示有错误的解决方法
2013/09/16 Javascript
JavaScript编程中布尔对象的基本使用
2015/10/25 Javascript
JS获取复选框的值,并传递到后台的实现方法
2016/05/30 Javascript
纯前端JavaScript实现Excel IO案例分享
2016/08/26 Javascript
node.js学习之交互式解释器REPL详解
2016/12/08 Javascript
微信开发 JS-SDK 6.0.2 经常遇到问题总结
2016/12/08 Javascript
AngularJS封装指令方法详解
2016/12/12 Javascript
react native仿微信PopupWindow效果的实例代码
2017/08/07 Javascript
浅谈angularJS的$watch失效问题的解决方案
2017/08/11 Javascript
three.js实现3D视野缩放效果
2017/11/16 Javascript
angular5 子组件监听父组件传入值的变化方法
2018/09/30 Javascript
Vue实现表格批量审核功能实例代码
2019/05/28 Javascript
javascript使用substring实现的展开与收缩文字功能示例
2019/06/17 Javascript
viewer.js实现图片预览功能
2020/06/24 Javascript
python搭建微信公众平台
2016/02/09 Python
Python对字符串实现去重操作的方法示例
2017/08/11 Python
python模块和包的应用BASE_PATH使用解析
2019/12/14 Python
Python 识别12306图片验证码物品的实现示例
2020/01/20 Python
Win10下安装并使用tensorflow-gpu1.8.0+python3.6全过程分析(显卡MX250+CUDA9.0+cudnn)
2020/02/17 Python
Python实现JS解密并爬取某音漫客网站
2020/10/23 Python
python3定位并识别图片验证码实现自动登录功能
2021/01/29 Python
关于HTML5+ API plusready的兼容问题
2020/11/20 HTML / CSS
英国家喻户晓的折扣商场:TK Maxx
2017/05/26 全球购物
手工制作的意大利太阳镜和光学元件:Illesteva
2019/01/19 全球购物
公务员培训心得体会
2013/12/28 职场文书
浪费资源的建议书
2014/03/12 职场文书
运动会演讲稿300字
2014/08/25 职场文书
2014年超市员工工作总结
2014/11/18 职场文书
2015年基层党建工作总结
2015/05/14 职场文书
2016教师六五普法学习心得体会
2016/01/21 职场文书