概念(个人理解):js中函数中局部变量无法被外部访问,通过定义子函数读取内部变量,外部通过调用子函数访问内部变量,
这种方式称为闭包。
<script type="text/javascript">
function a() {
var age = 11;
function getAge() {
alert(age);
return age;
//return this.age;
}
return getAge();
}
alert(a());
</script>
闭包作用:
1.一
个是前面提到的可以读取函数内部的变量,
2. 让这些变量的值始终保持在内存中
。
function b() {
var secret = 'secret';
// “闭包”内的函数可以访问 secret 变量,而 secret 变量对于外部却是隐藏的
return {
get_secret: function () {
// 通过定义的接口来访问 secret
return secret;
},
new_secret: function ( new_secret ) {
// 通过定义的接口来修改 secret
secret = new_secret;
}
};
}