用一个函数 去访问 另外一个函数内部定义的局部变量的方式就是闭包。
内部变量是局部变量
局部变量只能在函数作用域的内部使用。
闭包的特点:
优点:不产生全局变量,实现属性私有化。
内部变量是局部变量
局部变量只能在函数作用域的内部使用。
闭包的特点:
优点:不产生全局变量,实现属性私有化。
缺点:闭包中的数据会常驻内存,在不用的时候要删掉否则会导致内存溢出。
下面写一个简单的例子:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
</body>
<script>
function outerFun(){
var a=0;
function innFun(){
a++;
alert(a);
}
return innFun;
}
var obj=outerFun();
obj();
obj();
</script>
</html>
结果 1 2