JS闭包
2015-06-23 17:48
429 查看
闭包:我理解为函数之内的函数
JS函数内部声明的变量是私有变量(var n=0是私有变量,n=0是公有变量),那么闭包通过自己的作用域链也可以访问这些变量,可以实现访问私有变量的公用方法,下面举个例子,随手写的,没有进行测试,有错大家进行指正
1、n是函数a中的私有变量;
function a()
{
var n=0;
}
alert(n);//undefined
2、函数b是函数a的闭包,可以读取函数a的变量
function a()
{
var n=0;
b();
function b(){
alert(n);//0
}
}
a();
alert(n);//undefined
3、
function a()
{
var n=0;
function b()
{
alert(n)
}
return
b();
}
a();
//结果是alert(n);即弹出框中显示n的值0
利用第三种方法实现了对私有变量的访问
JS函数内部声明的变量是私有变量(var n=0是私有变量,n=0是公有变量),那么闭包通过自己的作用域链也可以访问这些变量,可以实现访问私有变量的公用方法,下面举个例子,随手写的,没有进行测试,有错大家进行指正
1、n是函数a中的私有变量;
function a()
{
var n=0;
}
alert(n);//undefined
2、函数b是函数a的闭包,可以读取函数a的变量
function a()
{
var n=0;
b();
function b(){
alert(n);//0
}
}
a();
alert(n);//undefined
3、
function a()
{
var n=0;
function b()
{
alert(n)
}
return
b();
}
a();
//结果是alert(n);即弹出框中显示n的值0
利用第三种方法实现了对私有变量的访问
相关文章推荐
- ResponsiveSlides.js最轻量级的幻灯片插件
- js、jq怎么控制文本框只能输入数字
- $.getJson
- 1、使用javascript代码写出一个函数:实现传入两个整数后弹出较大的整数
- JS方法代理
- extjs传递参数
- javascript定义类(class)的三种方法
- JSON vs ProtoBuf vs XML
- extjs动态添加列
- maven 中使用jstl标准标签库
- 【代码片段】javascript下选项卡切换
- 【代码片段】javascript下新增、删除一行/选中文字变颜色
- javascript(浏览器窗口可视区域)
- Json文件/网址解析
- html5+js实现图片预览
- Newtonsoft.Json的初步用法
- 一个一百行内的现代的javascript路由
- Jsoup解析HTML实例(2)
- Jsoup解析HTML实例(1)
- 201506231015_《Javascript权威指南(第六版)——作为命名空间的函数、闭包、 》(P181-193)