闭包:
既重用一个变量,又保护变量不被更改的一种编程方法。
本质:外层函数的作用域对象,被内层函数引用着无法释放,形成了闭包。
今后:只要希望给一个函数保护一个专属的变量,只函数内可以反复使用,函数外无法更改这个变量,就要用闭包。
如何:
1.用外层函数将要保护的变量和使用这个变量的函数包裹起来。
2.要想让内层函数在外部依然可用,则需要外层函数将内层函数返回到外部。
3.想要获得内层函数的人,必须调用外层函数才能获得内层函数的对象继续使用。
function parent(){
var total=1000;
return function(money){
total-=money;
console.log('花了${money},还剩${total}');
}
}
var pay=parent();
pay(100);//900
pay(100);//800
pay(100);//700