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 ajax 同步异步的执行 return值不能取得的解决方案
Jan 08 Javascript
js中的屏蔽的使用示例
Jul 30 Javascript
javascript通过navigator.userAgent识别各种浏览器
Oct 25 Javascript
js鼠标滑轮滚动事件绑定的简单实例(兼容主流浏览器)
Jan 14 Javascript
jQuery操作iframe中js函数的方法小结
Jul 06 Javascript
vue中appear的用法
Aug 17 Javascript
在原生不支持的旧环境中添加兼容的Object.keys实现方法
Sep 11 Javascript
在React项目中使用Eslint代码检查工具及常见问题
Oct 10 Javascript
js中自定义react数据验证组件实例详解
Oct 19 Javascript
使用gulp构建前端自动化的方法示例
Dec 25 Javascript
JS实现简单的抽奖转盘效果示例
Feb 16 Javascript
利用前端HTML+CSS+JS开发简单的TODOLIST功能(记事本)
Apr 13 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
全国FM电台频率大全 - 15 山东省
2020/03/11 无线电
如何用php生成扭曲及旋转的验证码图片
2013/06/07 PHP
使用PHP接受文件并获得其后缀名的方法
2015/08/05 PHP
代码触发js事件(click、change)示例应用
2013/12/13 Javascript
以JSON形式将JS中Array对象数组传至后台的方法
2014/01/06 Javascript
JavaScript中计算网页中某个元素的位置
2015/06/10 Javascript
javascript针对不确定函数的执行方法
2015/12/16 Javascript
通过扫描二维码打开app的实现代码
2016/11/10 Javascript
jquery一键控制checkbox全选、反选或全不选
2017/10/16 jQuery
JS简单添加元素新节点的方法示例
2018/02/10 Javascript
微信小程序实现默认第一个选中变色效果
2018/07/17 Javascript
学习React中ref的两个demo示例
2018/08/14 Javascript
layui 给数据表格加序号的方法
2018/08/20 Javascript
详解nvm管理多版本node踩坑
2019/07/26 Javascript
详解elementui之el-image-viewer(图片查看器)
2019/08/30 Javascript
vue项目出现页面空白的解决方案
2019/10/31 Javascript
Python中的rfind()方法使用详解
2015/05/19 Python
python显示生日是星期几的方法
2015/05/27 Python
Python内置的HTTP协议服务器SimpleHTTPServer使用指南
2016/03/30 Python
python中OrderedDict的使用方法详解
2017/05/05 Python
使用python实现http及ftp服务进行数据传输的方法
2018/10/26 Python
Django model反向关联名称的方法
2018/12/15 Python
Python使用pydub库对mp3与wav格式进行互转的方法
2019/01/10 Python
在PyTorch中Tensor的查找和筛选例子
2019/08/18 Python
Python request操作步骤及代码实例
2020/04/13 Python
matplotlib部件之矩形选区(RectangleSelector)的实现
2021/02/01 Python
美国祛痘、抗衰老药妆品牌:Murad
2016/08/27 全球购物
英国第一的市场和亚马逊替代品:OnBuy
2019/03/16 全球购物
监理资料员岗位职责
2014/01/03 职场文书
旷课检讨书2000字
2014/01/14 职场文书
元宵节主持词
2014/03/25 职场文书
煤矿施工安全协议书
2016/03/22 职场文书
python 自动刷新网页的两种方法
2021/04/20 Python
MySQL 使用自定义变量进行查询优化
2021/05/14 MySQL
关于python中模块和重载的问题
2021/11/02 Python
详解OpenCV获取高动态范围(HDR)成像
2022/04/29 Python