zoukankan      html  css  js  c++  java
  • 闭包

     var name = "The Window";
      var object = {
        name : "My Object",
        getNameFunc : function(){
          return function(){
            return this.name;
          };
        }
      };
      alert(object.getNameFunc()());
    结果为 The Window
     var name = "The Window";
      var object = {
        name : "My Object",
        getNameFunc : function(){
          var that = this;
          return function(){
            return that.name;
          };
        }
      };
      alert(object.getNameFunc()());
    结果为 My Object
    this 指针指定的函数不一样

     我们有时候需要得到函数内的局部变量。但是,前面已经说过了,正常情况下,这是办不到的,只有通过变通方法才能实现。可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中,这是本人自己的理解

    var data=[];
    
    for (i=0;i<3;i++){
      data[i]=function(){
           console.log(i);
         }
       }
    
    data[0]();
    data[1]();
    结果为3
    var data = [];
    
    for (var i = 0; i < 3; i++) {
      data[i] = (function (i) {
            return function(){
                console.log(i);
            }
      })(i);
    }
    
    data[0]();
    执行的结果为 0;
    他会把值保存到内存中
  • 相关阅读:
    0919 作业
    0918 登录注册
    20190918 文件处理
    20190917 字符编码
    0916 作业
    0916 数据类型与深浅拷贝
    0913 作业
    0912 for循环及内置方法
    0911 作业
    Ubuntu同时忘记用户密码和root密码
  • 原文地址:https://www.cnblogs.com/yu-hailong/p/7526341.html
Copyright © 2011-2022 走看看