歪仔

导航

闭包

1.变量的作用域

2.如何从外部读取局部变量?

3.概念?

4.用途?可以读取函数内部的变量;让这些变量的值始终保持在内存中。

5. 练习?

代码片段一。

  var name = "The Window";

  var object = {
    name : "My Object",

    getNameFunc : function(){
      return function(){
        return this.name;
      };

    }

  };

  alert(object.getNameFunc()());

  解释:结果为The Window,原因:this对象在运行时是基于函数的执行环境绑定的,匿名函数的执行环境具有全局性,因为this指向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,原因:that在运行时指向其父函数的作用域,父函数的作用域中name为对象object的。

posted on 2016-08-05 11:32  歪仔  阅读(89)  评论(0编辑  收藏  举报