闭包可以用在许多地方。它的最大用处有两个,一个是可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中,不会在f1调用后被自动清除。

为什么使用闭包我举个例子

'use strict' function num(){ //用var声明一个变量num1 var num1 = 15 } alert(num1)//num1 is not defined

我们在函数外是访问不了函数内的局部变量!正常的情况下我们是办不到的

假设我们有个需求需要访问函数内的变量,我们就可以用闭包实现

'use strict' function num(){ //用var声明一个变量num1 var num1 = 15 return function(){ return num1 } } var num2 = num() var num3 = num2() alert(num3)//15 这样我们就可以取到局部变量了。这就是闭包!