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

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

2023-07-12 17:14 作者:小傅同学゛  | 我要投稿

概念:闭包就是能够读取其他函数内部变量的函数

语法:function fn(){

            // 属于fn函数的私有变量

            let a = 10

            // 把这个a返回给外界,但是是通过函数返回的

            return function(){

                // 使用了fn函数的私有变量

                console.log(a)

            }

        }

        // 在外界使用变量接收了返回出来的函数

        let res = fn()

        res()

闭包面试题:function fun(n, o) {

            console.log(o)

            const obj = {

                fun: function (m) {

                    return fun(m, n)

                }

            }


            return obj

        }

        var res = fun(0) // 执行是全局的fun  n = 0  o   // undefined

                        // res 就是obj这个对象    执行的时候 形成了闭包  n 变量缓存起来了 n = 0

                         // 执行空间1

        //    console.log(res)            

        res.fun(1)  // fun 就是对象里面的fun  m = 1

                    //  里面会执行 return  fun(m,n) 执行就是全局的fun(1,0)

                    // 打印 0

                    // 执行空间2   n = 1

        res.fun(2)  // fun  就是对象里面 fun  m = 2  

                    //  里面会执行 return  fun(m,n) 执行就是全局的fun(2,0)

                    // 执行空间3

        res.fun(3)

        // var b = fun(0).fun(1).fun(2).fun(3)

        //    var  res  = fun(0)   // undefined   //  执行空间1   n = 0

        //    var  res1 =  res.fun(1) // ===> fun(0).fun(1)    //  0    执行空间2  n = 1

        //    var  res2 =  res1.fun(2) //  == fun(0).fun(1).fun(2)   // 打印1  执行空间3  n= 2



        var c = fun(0).fun(1)  // undefined   0

        // c.fun(2)    //  1

        // c.fun(3)    // 1

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

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