var  factory = function(n){
     var name = n;
    return function(){
           alert(name);
    }
}var show = factory('kk');
var show2 = factory('kk3k');show();
show2();name在 factory执行的时候被闭包了  只有 返回的 那个函数才能访问

解决方案 »

  1.   

    <!doctype html>
    <html lang="en">
     <head>
      <meta charset="UTF-8">
      <meta name="Generator" content="EditPlus®">
      <meta name="Author" content="">
      <meta name="Keywords" content="">
      <meta name="Description" content="">
      <script type="text/javascript">
      <!--
    var class_person = new function(){
    this.speak = function(msg){  //公开的,外部程序可调用
    test();
    alert(msg);
    }
    var test = function(){//私有的,不对外开放
    alert(1);
    }
    };
    window.onload = function(){
    class_person.test();//要出错,对象不支持此属性或者方法
    class_person.speak('js');
    }
      //-->
      </script>
      <title>Document</title>
     </head>
     <body>
      
     </body>
    </html>
      

  2.   


    你说的是现象,我想问下写的形式。
    最近涉及闭包的内存泄露,排查过程中忽然发现对什么样的算是闭包,迷糊了!所以就想看看大家如何判断的!
    http://blog.csdn.net/u011043843/article/details/26148265