闭包

function myFn(){
  var myNum = 10;
  function showNum(){
    return(myNum);     //or alert
  }
  return showNum;
}

var callFn0 = myFn;
var callFn = myFn();
/*alert(callFn0);        //function myFn(){...}
alert(callFn);             //返回的showNum  即function showNum(){...}
alert(callFn0());*/      //同上
alert(callFn());           //执行showNum    即return(myNum);  即10
alert(myFn()());         //同上

 

 

简单理解:一层一层往外抛(return),通过这种方式向外传值,打破了局部变量的限制,但若意外使用 在ie中会导致内存泄漏问题

posted @ 2014-08-07 10:50  xss392795158  阅读(116)  评论(0编辑  收藏  举报