1. 什么是闭包?
简单来说,闭包是指可以访问另一个函数作用域变量的函数,一般是定义在外层函数中的内层函数。
2.为什么需要闭包?
局部变量无法共享和长久的保存,而全局变量可能造成变量污染,所以我们希望有一种机制既可以长久的保存变量又不会造成全局污染。
3.闭包的例子
//实现静态变量
var call = (function () {
var times = 0;
return function () {
return ++times;
}
})();
console.log(call()); //1
console.log(call()); //2
//柯里化
function add(step) {
return function (num) {
return num + step;
}
}
var add1 = add(1);
console.log(add1(2)); //3