js 闭包

<script>
  // 闭包可以使一个函数的变量很长时间内停留在内存中
  // 在一个函数内部使用变量,但是这个变量在函数外面使用,用到闭包。
  // 闭包不能随便使用,因为使用闭包,在函数内部的变量在内存中停留的时间过长,这样内存消耗比较大。
  // 在a 函数中定义的b函数,在外面,b函数是访问不到的。
  function a(){
    var i = 0;
    function b(){
      i++;
      return i;
    }
    return b;
  }

  var c = a();
  alert(c());

  // 闭包的范式:
  (function(){

  })();

  // 例一:
  (function(){
    alert("coreWars");
  })();

  // 例二:
  (function($){
    $.fn.helloWorld = function(){
      aa();
      bb();
      return {
        cc:function cc(){ //公有方法
        alert("cc");
      },  
      dd:function dd(){ // 公有方法。
        alert("dd");
      }
    };
  }
  function aa(){ //私有方法,在闭包的外面,直接访问aa()方法是访问不到的。
    alert("aa");
  }
  function bb(){ //私有方法。
    alert("bb");
  }
  })(jQuery);
  aa(); // 直接访问私有方法aa()是访问不到的。
  var pubFunction = $("*").helloWorld();
  pubFunction.cc(); // 这个公有方法cc() 是可以直接 访问的。
</script>

posted @ 2012-09-08 17:51  coreWars  阅读(84)  评论(0)    收藏  举报