JS的学习

闭包函数

2021-11-27  本文已影响0人  wy22

定义一个a方法,在a方法中定义一个b方法,并且b方法里面用到了a方法里面定义的变量,

那么此时就形成了闭包函数

  // 闭包函数:两个函嵌套定义,里面的函数用到了外面函数的变量,此时这两个函数就形成了闭包。

        function fun1(){

            let num1 = 10

            let num2 = 20

            function fun2(){

                let sum = num1 + num2

                return sum

            }

            //返回里面的函数

            return fun2

        }

        let r = fun1()

        console.log(r);

        console.log(r());

 // 定义一个闭包函数,实现计算器功能

        function myCalc(num1,num2,type){

            switch(type){

                case '+':

                    return function(){

                        return num1 + num2

                    }

                case '-':

                    return function(){

                        return num1 - num2

                    }

            }

        }

        //先准备好你的数据

        let n1 = 100

        let n2 = 50

        //将你的数据传给计算器方法,由计算器方法,返回一个计算方法。

        let js = myCalc(n1,n2,'+')

        //在做具体的计算之前,还先做些其他的事情

        console.log('查看用户是否登录');

        n1 = 555

        n2 = 145

        console.log('检查用户的权限');

        //其他事件准备好了后,执行计算方法

        console.log(js());

 // 闭包函数:两个函嵌套定义,里面的函数用到了外面函数的变量,此时这两个函数就形成了闭包。

        function fun1(){

            let num1 = 10

            let num2 = 20

            function fun2(){

                let sum = num1 + num2

                return sum

            }

            //返回里面的函数

            return fun2

        }

        let r = fun1()

        console.log(r);

        console.log(r());

上一篇 下一篇

猜你喜欢

热点阅读