闭包

作者: 酒暖花深Q | 来源:发表于2020-09-11 16:33 被阅读0次

    闭包是作用域应用的特殊情况 它有两种变现

    1 . 函数作为返回值被返回

     function create()  {
             const a = 100;
             return function(){
             console.log(a)
          }
     }
    const fn = create();
    const a = 200;
    fn(); //100
    

    2 . 函数作为参数被传递

      function print(fn) {
        const a = 200;
        fn()
     }
    const a = 100;
     function fn(){
       console.log(a)
     }
     print(fn) //100
    
    总结:所有自由变量的查找是在函数定义的地方向上一级作用域查找 ,而不是在调用的地方。

    tips: 闭包会引起内存泄漏,所以再函数结束前应该将其赋值为null

    相关文章

      网友评论

          本文标题:闭包

          本文链接:https://www.haomeiwen.com/subject/cveeektx.html