构造函数也是函数
构造函数和其它函数的唯一区别: 构造函数是通过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(在浏览器中),和普通函数没有任何区别。。。