JavaScript进阶设计模式系列——基础篇——闭包(2)--闭包和生命周期
来源:互联网 发布:sql注入漏洞危害 编辑:程序博客网 时间:2024/05/21 22:57
生命周期和闭包
局部变量其生命周期,将会随着函数调用的结束而结束掉其生命,也就是内存被销毁。而全局变量则不会,它是永久存在的,除非我们主动销毁全局变量。但是试着看一下如下一段代码,你会发现一个很神奇的事情!局部变量a 竟然没有被销毁!
var func = function(){ var a = 1; return function(){ a ++ ; console.log(a); }}var fn = func();fn();fn();fn();fn();fn();
输出结果为:2、3、4、5、6
解释: 其实,和我们预期的结果恰恰相反,为什么?这就是我们说到的闭包现象。因为当执行var fn = func()的时候,返回了一个匿名函数的引用给fn对象。所以,fn可以访问到func被调用时产生的环境,而局部变量一直处于这个环境中。因此,闭包的环境就出现了。看起来就像是局部变量的生命周期被延续了。
阅读全文
0 0
- JavaScript进阶设计模式系列——基础篇——闭包(2)--闭包和生命周期
- JavaScript进阶设计模式系列——基础篇——闭包(1)--闭包和作用域
- JavaScript进阶设计模式系列——基础篇——闭包(3)--闭包的作用
- JavaScript进阶设计模式系列——基础篇——闭包(4)--闭包和面向对象的设计
- JavaScript进阶设计模式系列——基础篇——闭包(5)--命令模式的两种实现方式
- javascript进阶——闭包
- JavaScript进阶设计模式系列——基础篇——this-call-apply
- JavaScript进阶设计模式系列——基础篇——高阶函数
- 深入理解javascript原型和闭包系列 深入理解javascript原型和闭包(0)——目录
- 深入理解javascript原型和闭包系列 深入理解javascript原型和闭包(5)——instanceof
- 深入理解javascript原型和闭包系列 深入理解javascript原型和闭包(6)——继承
- 深入理解javascript原型和闭包系列 深入理解javascript原型和闭包(15)——闭包
- 深入理解javascript原型和闭包系列 深入理解javascript原型和闭包(2)——函数和对象的关系
- 闭包——Javascript 进阶知识整理
- javascript—闭包
- javascript—闭包
- Javascript基础——this、闭包、单例模式、工厂模式
- 深入理解javascript原型和闭包系列 系深入理解javascript原型和闭包(17)——补充:上下文环境和作用域的关系
- hibernate 存储过程调用
- v-on:click获取当前事件对象元素
- Paxos协议
- git 安装和创建一个仓库
- Android Room
- JavaScript进阶设计模式系列——基础篇——闭包(2)--闭包和生命周期
- SQL Server数据库自增长标识列的更新修改操作方法
- java按键实现
- 客户端图像浏览器Prizm ActiveX Viewer v10.3发布丨附下载
- (2)开发环境与微信后台的对接
- JavaScript进阶设计模式系列——基础篇——闭包(3)--闭包的作用
- iOS修改Xcode工程名称
- java读取.properties配置文件的几种方法
- 两个list取并集