简述闭包

闭包

这是我对闭包的一点小理解.有问题请直接指出,在此先谢过!

闭包的含义
封闭隔离的空间,在javascript中,只有函数能够符合这种特性;

为什么要用闭包呢?
因为在引用外部js文件(如jquery,各种框架)时防止变量重名造成的问题,同时也使代码更具隐私性;

获取闭包中数据的方法:
一般采用 return 对象,因为对象可以添加多个方法,让每个方法返回对应的值

下面是一个闭包的案例参考

    //闭包,把所有代码都写在自调用函数里,以防重名; 
    (function () {
        function foo(name,age,gender) {
            var flag=false;  //设置一个节流阀,判断条件
            return {     //这里返回一个对象
                get_Name:function() {    //给对象设置方法
                    return name;
                },set_Name:function (value) {
                    return name=value;
                },get_Age:function () {
                    return age;
                },get_Gender:function () {
                    return gender
                },set_Gender:function (value) {
                    if(flag==false){       //当你修改过一次性别后,再次修改将会报错;
                        flag=true;
                        return gender=value;

                    }else{
                         throw new Error("您已经更改过性别了,只能修改一次");
                    }
                }
            }
        }


        var F=foo("刘跃盛",23,"男");    //调用函数foo()并把返回的对象赋值给到变量 F ;
        var A=foo("章旭卉",21,"女");
        console.log(A.set_Name("章舒涵"));     
        console.log(F.set_Gender("女"));    //修改性别
        console.log(F.set_Gender("男"));//再次修改报错

    })();

加油!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值