JS闭包

JS典型闭包形式:

function a(){
  var i = 1;
  function b(){
    return ++i;
  }
  return b;
}
alert(a()());

要理解闭包,JS函数的作用域、作用域链等,注意下边两段代码的异同。

代码一:

var s = "hello window";
var o = {
  s:"hello object",
  f:function(){
    function c(){
      return this.s;
    }
    return c;
  }
}
alert(o.f()());

代码二:

var s = "hello window";
var o = {
  s:"hello object",
  f:function(){
    var that = this;
    function c(){
      return that.s;
    }
    return c;
  }
};
alert(o.f()());

posted on 2013-05-13 14:23  levian  阅读(238)  评论(0)    收藏  举报

导航