概述
s首先来看一个例子,
<!DOCTYPE html>
<html>
<head>
<title>test</title>
<script language="javascript">
function f1(){
n=999;
function f2(){
alert(n); // 999
}
return f2;
}
var result=f1();
result();
</script>
</head>
<body> </body>
</html>
从上面的例子可以理解,如果是直接f1()是访问不到alert的,只有在返回给变量的时候,才会把f1中的f2作为返回值输出f2中的alert。
直白的理解,闭包就是能够读取其他函数内部变量的函数。由于在Javascript语言中,只有函数内部的子函数才能读取局部变量,因此可以把闭包简单理解成“定义在一个函数内部的函数”。所以,在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。
那么闭包都有啥子作用呢?
1、读取函数内部的变量
2、让这些变量的值始终保存在内存之中
<!DOCTYPE html>
<html>
<head>
<title>test</title>
<script language="javascript">
function f1(){
n=999;
n_add=function(){n++;}
function f2(){
alert(n); // 999
}
return f2;
}
var result=f1();
result();
n_add();
result();//1000
n_add();
result();//1001
//不定义var的时候是全局变量
//定义var的时候是局部变量
//所以n和n_add都是全局的,但此处访问不到f2
</script>
</head>
<body>
</body>
</html>
上面的例子可以很方便的理解闭包值用来保存变量的值的作用
http://www.jb51.net/article/24101.htm###
转载于:https://www.cnblogs.com/yingzi/archive/2012/02/27/2369260.html
最后
以上就是爱撒娇外套为你收集整理的JavaScript基础---理解闭包问题的全部内容,希望文章能够帮你解决JavaScript基础---理解闭包问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复