JS的闭包性
2017-12-31 23:29 那些年111 阅读(184) 评论(0) 收藏 举报JS语言里每个函数都是独立的作用域,如一个个小黑屋,它可以获取外界信息,但是外界却无法直接看到里面的内容。将变量 n 放进小黑屋里,除了 b 函数之外,没有其他办法能接触到变量 n,而且在函数 a 外定义同名的变量 n 也是互不影响的,这就是所谓的增强“封装性”。这是缺点也是优点。应用场景:封装成私有成员变量,保证变量的安全性。
代码:
function a(){
var n=0;
function b(){
n++;
console.log(n);
}
return b;//很重要,将b于外界建立联系,保证n在a函数作用域内变化
}
var c=a();
c();//1
c();//2
浙公网安备 33010602011771号