JavaScript中函数和构造函数的区别

  构造函数和其它函数的唯一区别: 构造函数是通过new操作符来调用的。

  也就是说如果构造函数不用new操作符来调用,那它就是普通函数,反过来说任何函数通过new操作符来调用就可以当做构造函数。

  

    function Car(name,color,speed,type){
        this.name=name;
        this.color=color;
        this.speed=speed;
        this.type=type;
    }
    //通过new来调用
    var car1=new Car('xixi','red',2,'a');
    console.log(car1.name); //xixi
    //没用new来调用
    var car2=Car('haha','green',3,'b');
    console.log(car2.name); //报错
    console.log(window.name); // haha

  上面的例子表明,如果构造函数没有通过new来调用的话,this对象指向的是window(在浏览器中),和普通函数没有任何区别。。。