zoukankan      html  css  js  c++  java
  • 闭包小小结

    闭包有很多的解释,有的是这么认为的:如果在函数func内部声明函数inner,然后在函数外部调用inner,这个过程即产生了一个闭包。还有些是这么认为的:闭包是一种使函数能够读取其它函数的局部变量的语法机制。  我比较喜欢第二种,就是这个函数它能够访问其他函数的局部变量。

    闭包的用途:一个是可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中。

    一个是可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中
    作者: 妙笔
    链接:http://www.imooc.com/article/8413
    来源:慕课网
    一个是可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中
    作者: 妙笔
    链接:http://www.imooc.com/article/8413
    来源:慕课网
    function Current(start){
        count = start;
        return{
            on: function(){
                count++;
            },
            off: function(){
                return count;
            }
        }
    }
    var foo = Current(4);
    foo.on();
    foo.off();
    console.log(foo.off());

    这里,Counter 函数返回两个闭包,函数 on 和函数 off。 这两个函数都维持着 对外部作用域 Counter 的引用,因此总可以访问此作用域内定义的变量 count.

    闭包应用举例,模拟类的私有属性,利用闭包的性质,局部变量只有在sayAge方法中才可以访问,而name在外部也访问,从而实现了类的私有属性。

    
    
    function User(){
        this.name = "Vicfeel"; //共有属性
        var age = 23; //私有属性
        this.sayAge:function(){
           console.log("my age is " + age); 
        }
     }
     var user = new User();
     console.log(user.name); //"Vicfeel"
     console.log(user.age); //"undefined"
     user.sayAge(); //"my age is 23"
    
    

    嗯,差不多我的记录就是这样子了。

     
    好记性不如烂笔头,看到自己觉得应该记录的知识点,结合自己的理解进行记录,用于以后回顾。
  • 相关阅读:
    编译原理-确定有穷自动机(deterministic finite automata ,DFA)
    编译原理-正规式和正规集
    linux之sed用法
    Linux 中find命令
    运维工作应该掌握哪些技能?
    Last_SQL_Error: Error 'Can't drop database
    关于在centos下安装python3.7.0以上版本时报错ModuleNotFoundError: No module named '_ctypes'的解决办法
    python3.7安装, 解决pip is configured with locations that require TLS/SSL问题
    Linux date命令的用法(转)
    MySQL回滚到某一时刻数据的方法
  • 原文地址:https://www.cnblogs.com/wangxi01/p/6427785.html
Copyright © 2011-2022 走看看