JavaScript中的闭包之我见

闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。下面 就是我的学习笔记,对于Javascript初学者应该是很有用的。

一、闭包的调用过程


 var name = "The Window";
  var object = {
    name : "My Object",
    getNameFunc : function(){
      var that = this;
			alert(this);//1
			alert(that);//2
      return function(){
				alert(this);//3
			alert(that);//4
        return that.name;//5
      };
    }
  };
  alert(object.getNameFunc()());//断点



  1. 断点处的代码会两次进入到object对象中,第一次执行的是1-2,其中that= this,都是object这个定义好的对象(name,getNameFunc()),alert的结果是两个OBJECT
  2. 第二次执行的是window调用的(我感觉是),执行的是3-5,alert的结果分别是window、OBJECT、My Obect。



var name = "The Window";
  var object = {
    name : "My Object",
    getNameFunc : function(){
			alert(this);/1
      return function(){
        return this.name;/2
      };
    }
  };
  alert(object.getNameFunc()());


  1. 执行结果分别是OBJECT、The Window,函数还是分两次执行






评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值