javascript中闭包学习笔记
来源:互联网 发布:淘宝js 编辑:程序博客网 时间:2024/06/03 13:40
闭包,从代码的形式上是在函数声明的内部声明另一个函数,从功能上讲,闭包是一种具有状态的函数,函数内的局部变量在函数调用后仍然有效。下面是一个闭包的简单的例子:
function f(){ var cnt = 0; return function(){ return ++cnt;}}var fn=f(); //将函数的返回值赋给变量fn();fn();fn();上面fn(); 的三次调用输出的分别是 1,2,3,这就说明f()在被调用后其局部变量仍然存在。
闭包的作用:
1、闭包实现访问器
function obj(){ var _x = 0; // 返回一个定义了访问器的对象 return { get x() { return _x;}, set x(v) {_x =v;} };}
2、闭包实现信息隐藏
var obj = (function(){ //私有变量 var position = {x:2,y:3}; //私有函数 function sum_internal(a,b){ return Number(a)+Number(b); } return{ sum:function(a,b){ return sum_internal(a,b);}, x:position.x }; } )();
3、使用闭包实现计数器功能的类
function counter_class(i){ var cnt = i || 0; //设置默认参数 //在此声明私有变量,私有函数 return { //公有方法 show:function(){ return cnt;}, //return this便于使用方法链 up:function(){cnt++; return this;}, down:function(){cnt--; return this;} };}
0 0
- javascript中闭包学习笔记
- JavaScript中闭包的学习笔记
- javascript cookie学习笔记javascript
- javascript学习笔记
- Javascript学习笔记
- JavaScript学习笔记1
- JavaScript学习笔记2
- JavaScript学习笔记3
- JavaScript学习笔记4
- JavaScript学习笔记5
- JavaScript学习笔记6
- JavaScript学习笔记7
- JavaScript 学习笔记 1
- JavaScript 学习笔记 2
- JavaScript 学习笔记 3
- JavaScript 学习笔记 4
- javascript学习笔记
- javascript学习笔记
- ajax获取不到Ueditor值的问题
- hdu2296 AC自动机+DP
- Python中的property() 函数 和@property 装饰符
- Ganglia监控Hadoop集群的安装部署
- Week10---5月7日
- javascript中闭包学习笔记
- OC_ 分类和协议
- Python 之 @property
- 设计模式(结构型)之代理模式(Proxy Pattern)
- Android lint发现隐藏的Bug
- Php操作redis写入对象和查询对象
- POI导出Excel经典实现
- ListView嵌套在ScrollView
- [LeetCode] Combination Sum II