美文网首页
闭包和js的回收机制

闭包和js的回收机制

作者: 练习时长2年半的个人练习生 | 来源:发表于2020-05-11 15:25 被阅读0次
    • 闭包的概念

      子函数使用父函数变量的行为就是闭包。

    • 闭包的作用
      1.可以访问内部作用域的变量(在外部调用子函数,因为子函数中保持着对他的父函数变量引用。所以可以在外部访问到内部作用域的变量。)

      1. 可以让这些变量的值一直存在于内存中
    • 闭包的缺点
      因为闭包会让引用父作用域的变量一直存在,所以可能导致内存泄漏

    • 闭包的应用场景
      保护函数内的变量安全:如迭代器、生成器。
      在内存中维持变量:如果缓存数据、柯里化。

        function parent(){
          let lastName = '赵';
    
         return   function son(){
          
            return lastName;
          }
       }
       //这就是一个闭包。  子函数使用了父函数的变量,使这个变量一直保持在内存中。
    

    强制回收内存 变量=null即可实现
    闭包保持变量在内存的实例

     function calc(){
           let res = 0;
           return function(){
             return ++res
           }
        }
        let fn = calc();
        console.log(fn()) //1
        console.log(fn())//2
        console.log(fn())//3
        console.log(fn())//4
    

    柯里化实例

    相关文章

      网友评论

          本文标题:闭包和js的回收机制

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