1. 什么是閉包?
簡(jiǎn)單來說幽七,閉包是指可以訪問另一個(gè)函數(shù)作用域變量的函數(shù)壹堰,一般是定義在外層函數(shù)中的內(nèi)層函數(shù)乙各。
2.為什么需要閉包谐岁?
局部變量無法共享和長(zhǎng)久的保存醋奠,而全局變量可能造成變量污染,所以我們希望有一種機(jī)制既可以長(zhǎng)久的保存變量又不會(huì)造成全局污染翰铡。
3.閉包的例子
//實(shí)現(xiàn)靜態(tài)變量
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