javascript闭包小结
1.什么是闭包
我个人的理解是:闭包是指函数内部变量和内部函数的作用域与生命周期的规则
function a () {
var x;
function b(){
alert(x);
}
}
这是个简单的闭包示例。
2.内部变量的作用域
函数内部定义变量时,如果用var,则定义的是函数内部变量,否则是全局变量
这里讨论var定义的变量。
此时变量x只在函数a内可以访问,外部无法访问,而b属于a的内部函数,则b可以直接访问x。
这就是闭包中变量的作用域。
3.内部变量的生命周期
当一个变量的引用数为0时,它的内存将可以被回收,否则继续存在
这就是说如果a执行完了,而b的实例还存在,则在b的实例中还有x的引用,那么a将不会被回收。
4.内部函数的作用域
其实函数的作用域和普通变量是一样,只不过这个变量是指向一个函数实例而已
内部函数b的作用域是在a内。
如果a外想访问b则需要将b的实例返回出去。例如:
function a(){
var x;
var b = function(){
alert(x);
}
return b;
}
f = a();
这样就可以通过f来访问内部函数b了。
转载于:https://www.cnblogs.com/kuncai/archive/2010/04/02/1703097.html
javascript闭包小结相关推荐
- [转载]深入理解JavaScript闭包(closure)
最近在网上查阅了不少Javascript闭包(closure)相关的资料,写的大多是非常的学术和专业.对于初学者来说别说理解闭包了,就连文字叙述都很难看懂.撰写此文的目的就是用最通俗的文字揭开Java ...
- 深入理解JavaScript闭包(closure) 【收藏】
深入理解JavaScript闭包(closure) 原文地址:http://www.felixwoo.com/archives/247 Felix Woo 最近在网上查阅了不少Javascript闭 ...
- 【转】深入理解JavaScript闭包(closure)
文章来源:http://www.felixwoo.com/archives/247 最近在网上查阅了不少Javascript闭包(closure)相关的资料,写的大多是非常的学术和专业.对于初学者来说 ...
- 揭开Javascript闭包的真实面目
揭开Javascript闭包的真实面目 闭包是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分,本文将用通俗的语言带您深入理解Javascript闭包 ...
- Javascript闭包和闭包的几种写法及用途
好久没有写博客了,过了一个十一长假都变懒了,今天总算是恢复状态了.好了,进入正题,今天来说一说javascript里面的闭包吧!本篇博客主要讲一些实用的东西,主要将闭包的写法.用法和用途. 一.什么 ...
- JavaScript学习总结(十六)——Javascript闭包(Closure)
闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现.很早就接触过闭包这个概念了,但是一直糊里糊涂的,没有能够弄明白JavaScript的闭包到底是什 ...
- 全面理解Javascript闭包和闭包的几种写法及用途【转】
一.什么是闭包和闭包的几种写法和用法 1.什么是闭包 闭包,官方对闭包的解释是:一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分.闭包的特点: 1. ...
- 全面理解Javascript闭包和闭包的几种写法及用途
一.什么是闭包和闭包的几种写法和用法 1.什么是闭包 闭包,官方对闭包的解释是:一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分.闭包的特点: 1. ...
- JavaScript闭包如何工作?
您将如何向了解其闭包概念(例如函数,变量等)的人解释JavaScript闭包,但却不了解闭包本身? 我已经在Wikipedia上看到了Scheme示例 ,但是不幸的是它没有帮助. #1楼 我知道已经有 ...
最新文章
- iphone4s解锁_苹果手机忘记密码怎么办?iPhone忘记密码解锁恢复方法
- rust军用船指令_RUST物品指令清单(英文版)
- 平衡二叉树所涉及的一些算法
- lisp方格网法计算土方量_CAD土方软件方格网法与三角网法相结合,准确计算土方量...
- 回调函数 相当于线程_C++屌屌的观察者模式-同步回调和异步回调
- 快速掌握 机器学习(Machine Learning) 常用概念术语,常用算法
- 简单测试lambda和linq查找的性能
- 从头开始复习css之选择器(中)
- com.alibaba.dubbo.rpc.RpcException: Since you are
- 程序员代码面试指南 算法与数据结构 大厂经典代码面试题
- 大明湖畔昇腾绽放,趵突泉里智能奔涌
- elasticsearch 聚合搜索
- 2021年中式面点师(中级)最新解析及中式面点师(中级)模拟考试题库
- AR手游《悠梦2》再获苹果推荐,下载《网易洞见》可免费试玩
- matlab中clc什么意思,MATLAB中clc是什么意思
- useRoutes() may be used only in the context of a <Router> component.
- sublime3编程c语言,Sublime Text 3 实现C语言代码的编译和运行(示例讲解)
- 量化城市︱计算机视觉技术在街道品质量化评估中的应用
- 四、完成Teigha.net库对CAD看图的放大/缩小/移动实体等界面操作,图层管理器,以及CAD文件布局的切换功能
- Matlab最小面积包围四边形