资讯专栏INFORMATION COLUMN

简述闭包

maxmin / 1406人阅读

摘要:闭包这是我对闭包的一点小理解有问题请直接指出在此先谢过闭包的含义封闭隔离的空间在中只有函数能够符合这种特性为什么要用闭包呢因为在引用外部文件如各种框架时防止变量重名造成的问题同时也使代码更具隐私性获取闭包中数据的方法一般采用对象因为对象可以

闭包

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

闭包的含义
封闭隔离的空间,在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("男"));//再次修改报错

    })();

加油!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/89508.html

相关文章

  • 简述作用域还有闭包延伸至模块化

    摘要:首先变量对于一个程序来说是一个很重要的角色那么问题来了这些变量存在哪里程序用到的时候如何找到变量呢所以需要一套规则来存储变量方便之后再找到这套规则就成为作用域是一门编译语言对于来说大部分情况下编译发生在代码执行前的几微妙的时间内对于参与到一 首先,变量对于一个程序来说是一个很重要的角色, 那么问题来了 这些变量存在哪里,程序用到的时候如何找到变量呢? 所以需要一套规则来存储变量方便之后...

    imingyu 评论0 收藏0
  • 简述Function类型

    摘要:类型是提供的引用类型之一,通过可需变更创建对象。调用自身的函数被称之为递归函数。想要解决上述递归函数的问题,可以使用对象属性替换具体的函数名。保护贡献的局部变量。 Function类型 概述 Function与函数 函数是这样的一段JavaScript代码,她只定义一次,但是可能被执行或调用多次。Function类型是JavaScript提供的引用类型之一,通过Function可u需变...

    ityouknow 评论0 收藏0
  • JS 中的闭包是什么?

    摘要:大名鼎鼎的闭包面试必问。闭包的作用是什么。看到闭包在哪了吗闭包到底是什么五年前,我也被这个问题困扰,于是去搜了并总结下来。关于闭包的谣言闭包会造成内存泄露错。闭包里面的变量明明就是我们需要的变量,凭什么说是内存泄露这个谣言是如何来的因为。 本文为饥人谷讲师方方原创文章,首发于 前端学习指南。 大名鼎鼎的闭包!面试必问。请用自己的话简述 什么是「闭包」。 「闭包」的作用是什么。 首先...

    Enlightenment 评论0 收藏0
  • 函数作用域与闭包

    摘要:函数作用域要理解闭包,必须从理解函数被调用时都会发生什么入手。可以说,闭包是函数作用域的副产品。无论通过何种手段将内部函数传递到所在的词法作用域以外,它都会持有对原始定义作用域的引用,无论在何处执行这个函数都会使用闭包。 函数作用域 要理解闭包,必须从理解函数被调用时都会发生什么入手。 我们知道,每个javascript函数都是一个对象,其中有一些属性我们可以访问到,有一些不可以访问,...

    Code4App 评论0 收藏0
  • 深入理解JavaScript原型和闭包

    摘要:本文是本人阅读学习深入理解原型和闭包时所作的总结和笔记,当然也引用了很多原文,感兴趣的朋友也可以直接去看原文。即这里的称为隐式原型。注意,构造函数的函数名第一个字母大写规则约定。但实际上,上述情况是一种理想的情况。 本文是本人阅读学习深入理解JavaScript原型和闭包时所作的总结和笔记,当然也引用了很多原文,感兴趣的朋友也可以直接去看原文。 1、一切都是对象 先说结论,一切引用类型...

    missonce 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<