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

    作者:ole3021
    链接:https://www.zhihu.com/question/40338254/answer/86365070
    来源:知乎

    在说到JS的变量和方法管理通过闭包(闭包 - JavaScript)来实现,而闭包在JS中最常用的方法是模块(Modules),通过模块来定义私有的变量和方法(模块通过共有的api来提供外部访问)。

    举个 栗子:
    function User(){
        var username, password;
    
        function doLogin(user,pw) {
            username = user;
            password = pw;
    
            // do the rest of the login work
        }
    
        var publicAPI = {
            login: doLogin
        };
    
        return publicAPI;
    }
    
    在JS中创建一个User的新实例的时候使用下面的方法。
    var admin = User();
    
    admin.login("admin", "password");
    

    这样的好处是 User 作为外部的一个作用域保留了变量(username 和 password)以及方法(doLogin()),这里的变量和方法都是私有的方法,不能从外部访问到。

    调用User()方法 就能够获得一个新的User实例,这个新的实力和新的作用域(包含了User的内部属性和方法)

    ***
    不使用new User() 来创建是有目的这么做的
    1. User是一个方法,不是一个可以实例化的“类”。
    2. 使用new 方法会消耗更多的资源。
  • 相关阅读:
    Java EE javax.servlet中的ServletContext接口
    Java EE javax.servlet中的ServletConfig接口
    MD5加密工具
    redis常见数据操作
    Java文件上传与下载
    JSP技术
    spring集成swagger
    freemarker模板引擎的使用
    log4j生成日志
    Java自定义注解
  • 原文地址:https://www.cnblogs.com/zjdeblog/p/6652158.html
Copyright © 2011-2022 走看看