zoukankan      html  css  js  c++  java
  • 面试题-------闭包

    var object = {    
    name: "My Object",
    getNameFunc: function() {      
    return function() {        
    return this.name;      
    };    
    }  
    };  
    console.log(object.getNameFunc()());

    //The Window,此时是相当于object调用getNameFunc()方法,返回值是 function() {return this.name;};第二个括号相当于调用返回的新的函数,此时返回的this是window

    var name = "The Window";  
    var object = {    
    name: "My Object",
      getNameFunc: function() {      
    var that = this;      
    return function() {        
    return that.name;      
    };    
    }  
    };  
    console.log(object.getNameFunc()()); // My Object,that保存的是object

    var age=100;
    function test() {
    this.age=50;
    return function () {
    return this.age;
    }
    }

    var m=new test();//new出来一个新的test实体
    var n=test();
    console.log(m.age); // undefined,第一个return回来的是一个新的函数对象(匿名函数),新函数没有age属性,所以在return的时候是undefined
    console.log(m()); // 50
    console.log(n()); // 50

    但是如果把var n=test();放在console.log(m());之后,console.log(m());的值就是100

  • 相关阅读:
    Gson中@SerializedName 注解使用
    centos8 安装mongodb4.4
    ssh 连接manjaro失败
    git保存仓库的账号密码
    centos 安装etcd
    kubeadm部署k8s 拉取基础镜像
    centos 安装cloc 代码统计工具
    centos7 安装mongodb
    shell获取时间戳
    最详细的阿里云ECS服务器CentOS7上安装tomcat8服务(三)
  • 原文地址:https://www.cnblogs.com/luxiaoxiao/p/6064302.html
Copyright © 2011-2022 走看看