位置:首页 > 软件操作教程 > 编程开发 > JavaScript > 问题详情

JavaScript 使用闭包

提问人:刘团圆发布时间:2020-11-25

■实例设计

【示例1】使用闭包实现优雅的打包,定义存储器。

var f = function () {            //外部函数

    var a =[]                    //私有数组初始化

    return function(x){          //返回内部函数

        a.push(x);               //添加元素

        return a;                //返回私有数组

    };

}();                          //直接调用函数,生成执行环境

var a = f(1);                 //添加值

console.log(a);               //返回1

var b = f(2);                 //添加值

console.log(b);               //返回1,2

    在上面的示例中,通过外部函数设计一个闭包,定义一个永久的存储器。当调用外部函数,生成执行环境之后,就可以利用返回的匿名函数,不断向闭包体内的数组a传入新值,传入的值会一直持续存在。

【示例2】在网页中事件处理函数很容易形成闭包。

<script>

function f () {                    //事件处理函数,闭包

    var a = 1;                     //私有变量a,初始化为1

    b = function(){                //开放私有函数

        console.log( "a = " + a ); //读取a的值

    }

    c = function () {              //开放私有函数

        a ++ ;                     //递增a的值

    }

    d = function ( ){              //开放私有函数

        a --;                      //递减a的值

}

</script>

<button onclick="f ()">生成闭包</button> 

<button onclick="b ()">查看 a 的值</button> 

<button onclick="c ()">递 增</button> 

<button onclick="d ()">递 减</button>

    在浏览器中浏览时,首先单击“生成闭包”按钮,生成一个闭包。单击第2个按钮,可以随时查看闭包内私有变量a的值。单击第3、4个按钮时,可以动态修改闭包内变量a的值。

继续查找其他问题的答案?

相关视频回答
回复(0)
返回顶部