本帖最后由 littlecc2009 于 2011-02-27 09:59:19 编辑

解决方案 »

  1.   


    <script>
    var mm=(function(){
    return function(param1)
    {
    var p;
    this.pa=p=p=param1; 
    }
    })();mm.prototype.hello=function(){alert(this);}
    mm.prototype.toString = function(){return '[object mm]';};
    var c1=new mm();
    c1.hello();
    // 事实证明,this确实是指向new 出来的mm对象,并非window
    // 如果想用闭包存储私有变量可以考虑如下方式
    !function(){
    var b = 1;
    window.mm = function(){  // 用给window添加方法的方式可以将闭包内的函数暴露到全局去。
    this.show = function(){alert(b)};
    this.set = function(v){b=v;};
    };
    }();
    var nn = new mm;
    nn.show();
    nn.set(222);
    nn.show();
    </script>