高阶函数与闭包

高阶函数

定义: 需满足以下任意条件:

  • 接收一个或多个函数作为参数
  • 返回一个函数

闭包:

定义: 必需满足两个条件:

  • 一个函数中要嵌套一个内部函数,并且内部函数要访问外部函数的变量
  • 内部函数要被外部函数引用
例:
function test(){
    
    
    let i=1;
    return function(){
    
    
        console.log(i);
    }
}
let tes=test();//当我们盗用test函数时,就产生了一个闭包
tes();//1
//test中的i在执行完函数后本来会立即销毁,但由于全局中的tes还在引用,所以i就变成了自由变量

优点:可以让应该销毁的变量保存下来
缺点:消耗内存

猜你喜欢

转载自blog.csdn.net/z1783883121/article/details/103313772
今日推荐