f2函数就是闭包
闭包最大的特点,就是它可以“记住”诞生的环境
闭包的最大用处
- 可以读取函数内部的变量
- 让这些变量始终保持在内存中,即闭包可以使得它诞生环境一直存在。
- 封装对象的私有属性和私有方法、
读取函数内部变量
function f1(){var n=999;function f2(){console.log(n);}return f2;}var result=f1();result()//999
让变量始终保持在内存中
```javascript function createIncrementor(start){ return function(){
} }return start++;
var inc=createIncrementor(5) inc() //5 inc() //6 inc() //7
start 是函数createIncrementor 的内部变量,通过闭包,start状态被保留。闭包可以看着是函数内部作用域的一个接口<a name="OlEIU"></a>#### 封装对象的私有属性和私有方法```javascriptfunction Person(name){var age;function setAge(n){age=n;}function getAge(){return age}return {name:name,getAge:getAge,setAge:setAge};}var p1=Person('张三')p1.setAge(25)p1.getAge() //25
