var x=new ..其中的..必选项。对象的构造函数。如果构造函数没有参数,则可以省略圆括号。
没参时你的写法是一样的

解决方案 »

  1.   

    哦,那为什么在C#,java中new对象为什么一定要加()啊!
      

  2.   

    他们说的不好懂~
    js中的var a = new A;与var a = new A();有什么区别?var a  = new A;  //这个是引用,而并没有执行,看下面的例子
    var _alert = window.alert;
    window.alert=function(){ return; };
    这样alert被重写了,已经废了。而_alert即为之前alert的一个引用,这个引用在内存中是已经占据一块位置的,所以_alert(1);是可以执行的。
    var a = new A(); //这个其实就是立即执行了,如果你看到有这种写法,说明这个方法是有返回值的,所以才会这样做。
      

  3.   

      JavaScript 中的new关键字与C#,JAVA中的概念完全不一样。
      例:var a=new A();
      让我们来看看在JavaScript中的new发生了什么?
      var a={};//建立了一个新对象;
      a.__proto__=A.prototype;//将a的原型指向A;那么a就继承了A的方法与属性!
      A.call(a);//调用了A里的构造函数;
      document.write(a.__proto__===A.prototype);//为true 
    (ie不支持!因为在IE中__proto__为私有属性,不能能访问)
      所以new的作用其实就是建了一个空的对象 ,并且通过原型链记录原始对象的方法与属性那么var a=new A()与var a=new A 的没有太大的区别,他们都说明了建立对象所需要的说明,比如a.__proto__指向谁?空对象的名字?等等。但是有一个小小的区别就是,如果A的构造为下面这种:
      function A(name,addr){
      this.name=name;
    this.addr=addr;
    }
    那么var a=new A就不好构建对象了
      

  4.   

    你确定么?我也遇到了这样的代码,着实蛋疼  : a = new B;连var也省,尼玛,坑爹啊