关于闭包的简单应用实例--getter && setter以及迭代器

在之前的文章中总结过闭包,也是咋结合了几本书的解释加上自己的理解,总结了关于闭包的一些知识点。
这两天在读《JavaScript面向对象编程指南》时,再次接触了闭包,这次接触,更加加深了我对闭包的理解,我认为对闭包最简单的理解就是:能够在函数外部访问函数内部变量,将内部变量提升为“全局变量”(这里是指能够在全局作用域内访问),这改变了原有的作用域链的限制。

今天的第一个简单的应用实例:getter和setter。

假设现在有一个变量,他表示的事某类特定值,或某特定区间的值,我们不想将该变量暴露给外部。因为那样的话,其他部分的代码就有直接修改它的可能,所以需要将它保护起来,然后提供另外两个函数–一个获取值,一个重新赋值。

var getNum,setNum;
(function(){
    var num=0;
    getNum=function(){
        return num;
    };

    setNum=function(n){
        if(typeof n==="number"){
            num=n;
        }
    };
})();

result

## 迭代器简单实例–简单数组遍历 ##

function read(arr){
    var i=0;
    return function(){
        return arr[i++];
    }
}

var next=read(["第一个","第二个","第二个"]);

多次调用next函数:
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值