理解javascript闭包
2015-10-27 17:05
597 查看
不说学术上怎么理解闭包的概念了,我所理解的闭包就是:
一个函数 a中包含另一个函数b,c调用函数a时,实际上就是调用了函数b,这就是闭包(嵌套在函数里面的内部函数,内部函数可以访问外部函数中声明的局部变量、参数和其他内部函数,内部函数被外部函数调用)。
看一个例子吧:
function a(){ //a中包含另一个函数b
var i=0;
function b(){
alert(++i)
};
return b
};
var c=a(); //c调用函数a时,实际上就是调用了函数b
alert(c); //返回的是function b(){alert(++i)}
闭包其实就是保护内部变量,
但是如果页面上不需要这些变量,就会造成垃圾,
会使内存增大。
c=null 这样i就会被回收了。
闭包有啥好处呢?
1)可以存在自己的私有变量;
2)避免全局变量对其影响;
3)使一个变量长期储存在内存中
一个函数 a中包含另一个函数b,c调用函数a时,实际上就是调用了函数b,这就是闭包(嵌套在函数里面的内部函数,内部函数可以访问外部函数中声明的局部变量、参数和其他内部函数,内部函数被外部函数调用)。
看一个例子吧:
function a(){ //a中包含另一个函数b
var i=0;
function b(){
alert(++i)
};
return b
};
var c=a(); //c调用函数a时,实际上就是调用了函数b
alert(c); //返回的是function b(){alert(++i)}
闭包其实就是保护内部变量,
但是如果页面上不需要这些变量,就会造成垃圾,
会使内存增大。
c=null 这样i就会被回收了。
闭包有啥好处呢?
1)可以存在自己的私有变量;
2)避免全局变量对其影响;
3)使一个变量长期储存在内存中
相关文章推荐
- JS中的prototype
- javascript已知函数名调用函数
- IE8 数据传输js
- JSP基础语法
- Javascript异步编程的4种方法
- JSP的学习(4)——中文乱码的解决
- ZeroClipboard.js实现js复制功能(兼容ie9 和 ie10)
- 使用ant来压缩js代码,这个很有用
- JS实现图片预加载无需等待
- javaScript学习日记 1 数组
- js 压缩工具 google closure compiler
- 在config.json里面给图层添加新属性
- 关于webwork框架返回JSON数据格式的问题2015-10-27
- js typeof
- JSP学习笔记(一)
- javascript方法--call()
- JS 原型污染和猴子补丁
- js获取鼠标坐标位置兼容多个浏览器
- 常用js
- js实现上传图片本地预览功能以及限制图片的文件大小和尺寸大小