欢迎光临散文网 会员登陆 & 注册

千锋教育JavaScript全套视频教程(10天学会Js,前端javascrip

2023-07-12 16:47 作者:bili_90805471733  | 我要投稿

/* function test() {

        var a = 0

        return function(){

            console.log(a);

        }

    }

    test()() */

    //闭包

    //  闭包就是能访问到外部函数作用域中变量的函数

    // 使用场景

    //   当我们需要隐藏一些不希望被别人访问的内容时候就可以使用闭包

    /*

      产生闭包的条件

      1.在函数内部也有一个函数

      2.函数内部的函数里面用到了外部函数的局部变量

      3.外部函数把内部函数作为返回值return出去了

    */

    /*

       闭包的生命周期:

           1.闭包在外部函数调用时产生的,外部函数每次调用都会产生一个全新的闭包

           2.在内部函数丢失时销毁(内部函数被垃圾回收了,闭包才会消失)

    */

    //注意事项

      //闭包主要用来隐藏一些不希望被外部访问的内容,这就意味着闭包就需要占用一定的内存空间

      // 相比较于类来说,闭包比较浪费内存空间(类可以使用原型而闭包不能), 需要执行次数少时,使用闭包,需要大量创建使用类

    /*  function outer(){

         let someVariable = "someValue"

         return function (){

             console.log(someVariable);

         }

     }

     outer()() */

    function outer2() {

        let num = 0

        return () => {

            num++

            console.log(num)

        }

    }

    let fn1 = outer2()  // 独立闭包

    let fn2 = outer2()  // 独立闭包

    fn1 = null

    fn2 = null

千锋教育JavaScript全套视频教程(10天学会Js,前端javascrip的评论 (共 条)

分享到微博请遵守国家法律