高阶函数与闭包
高阶函数
定义: 需满足以下任意条件:
1.接收一个或多个函数作为参数
2.返回一个函数
闭包:
定义: 必需满足两个条件:
1.一个函数中要嵌套一个内部函数,并且内部函数要访问外部函数的变量
2.内部函数要被外部函数引用
例:
function test(){
let i=1;
return function(){
console.log(i);
}
}
let tes=test();//当我们盗用test函数时,就产生了一个闭包
tes();//1
//test中的i在执行完函数后本来会立即销毁,但由于全局中的tes还在引用,所以i就变成了自由变量
优点:可以让应该销毁的变量保存下来
缺点:消耗内存