JavaScript闭包简单应用
闭包定义
在JavaScript中,当一个内部函数被其外部函数之外的变量引用时,就形成了一个闭包。简单说,闭包就是能够读取其他函数内部变量的函数。
闭包的作用:
1. 可以读取函数内部的变量
2. 让这些变量的值始终保持在内存中。
闭包简单应用
例一:
function a() { var i = 0; function b() {console.log(++i);} return b;
}
var c = a(); //执行完var c=a()后,变量c指向了函数b,再执行c()后就会显示i的值(为1)。
c(); //输出1
例二:
(function() {
var i = 0; return function(){console.log(++i);}
})()(); //输出1
例三:
(function(i) { return function(){console.log(++i);}
})(0)(); //输出1
例四:
for (var i = 0; i < 3; i++) {setTimeout((function(i) { return function() {console.log(i);};})(i), 2000);console.log(i+10);
} //输出 10 11 12 (隔两秒后)0 1 2
例五:
for (var i = 0; i < 3; i++) {setTimeout((function(i) {return function() {console.log(i);};})(i)(), 2000);console.log(i+10);
} //立即输出 0 10 1 11 2 12 ,(两秒后运行程序结束)
转载于:https://www.cnblogs.com/cckui/p/7461998.html
JavaScript闭包简单应用相关推荐
- Javascript闭包简单理解
Javascript闭包简单理解 原文:Javascript闭包简单理解 提到闭包,想必大家都早有耳闻,下面说下我的简单理解. 说实话平时工作中实际手动写闭包的场景并不多,但是项目中用到的第三方框架和 ...
- javascript闭包简单实例
1 闭包实例 下图是一个闭包实例: <!DOCTYPE html> <html> <head> <meta charset="utf-8" ...
- Javascript闭包和闭包的几种写法及用途
好久没有写博客了,过了一个十一长假都变懒了,今天总算是恢复状态了.好了,进入正题,今天来说一说javascript里面的闭包吧!本篇博客主要讲一些实用的东西,主要将闭包的写法.用法和用途. 一.什么 ...
- JavaScript学习总结(十六)——Javascript闭包(Closure)
闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现.很早就接触过闭包这个概念了,但是一直糊里糊涂的,没有能够弄明白JavaScript的闭包到底是什 ...
- Javascript闭包,比较好懂的一篇文章
闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现. 下面就是我的学习笔记,对于Javascript初学者应该是很有用的. 一.变量的作用域 要理解 ...
- 全面理解Javascript闭包和闭包的几种写法及用途【转】
一.什么是闭包和闭包的几种写法和用法 1.什么是闭包 闭包,官方对闭包的解释是:一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分.闭包的特点: 1. ...
- 通过示例学习JavaScript闭包
译者按: 在上一篇博客,我们通过实现一个计数器,了解了如何使用闭包(Closure)**,这篇博客将提供一些代码示例,帮助大家理解闭包. 原文: JavaScript Closures for Dum ...
- JavaScript闭包原理与用法实例
###1.与闭包有关的两个概念: (1)变量的作用域 不带有关键字var的变量会成为全局变量: 在函数中使用关键字var声明的变量是局部变量. 局部变量只有在函数内部才能访问到,在函数外面是访问不到的 ...
- 全面理解Javascript闭包和闭包的几种写法及用途
一.什么是闭包和闭包的几种写法和用法 1.什么是闭包 闭包,官方对闭包的解释是:一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分.闭包的特点: 1. ...
最新文章
- python使用正则化检查字符串的起始和结束字符相同
- 布局覆盖 超出一部分_Android 布局优化
- iOS标准库中常用数据结构和算法之内存池
- 构建一个业务连续的网络
- UML实践---用例图、顺序图、状态图、类图、包图、协作图
- 排序算法:冒泡和快排 摘自网络
- 使用Arquillian(远程)测试OpenLiberty
- 外星人做系统logo_深圳福田外星人笔记本电脑维修服网点
- 九章基础算法04:二叉搜索树与哈希表
- Git-github 的基本应用
- matlab 遗传算法 等式约束,关于MATLAB遗传算法工具箱不等式约束
- Ubuntu系统安装Java JDK和HDFView
- java hl7v3_hl7 java 解析
- 西部旅游杂志西部旅游杂志社西部旅游编辑部2022年第19期目录
- Android的holder机制
- Linux防止stack缓冲区溢出的有效方法
- 疯癫的我到了巅峰 -- 我的成人礼
- 归并排序,快速排序为什么快
- php公众号开发配置网页域名,微信公众号网页开发授权配置流程
- 可怜的RSA【网络攻防CTF】(保姆级图文)