var m1 = main();//第一次undefined,因为函数内部有声明变量foo,在预编译的时候声明该变量,值为undefined 第二次为1,因为当前this指向window
var m2 = new main();//第一次同上 第二次为undefined,this指向m2此时m2的foo变量还未进行赋值改的话
             alert(foo);
             alert(foo);
             var foo = 2;
             this.foo=3;
这样就可以达到相同结果的目的

解决方案 »

  1.   

    undefined   没有块级作用域
    1   this指向的window
    undefined  没有块级作用域
    undefined  没有块级作用域
    var m=main()  m是undefind  不明白你的意思了
      

  2.   

    不过,我还是不明白,new main()是啥意思呢
      

  3.   

    js的方法本来就是一个Function对象 所以可以实例化的 new main()
      

  4.   

     没东西new 一个  实例或者说新建一个。 this用法是谁触发事件或者说谁使用就是谁