构造函数也是一个普通函数,创建方式和普通函数一样。
只是在命名上,构造函数一般是首字母大写,普通函数则是遵照小驼峰那式命名法。
1.调用方式不同
普通函数调用方式:直接调用fn()
构造函数调用方式:需要使用new关键字来调用new Fn()
例:
function fn(){}
fn(); //普通函数调用方式
function Fn(){}
var f = new Fn(); //构造函数调用方式
2.函数中的this的指向不同
构造函数内部大的this指向的是新创建的Fn实例
而普通函数内部的this指向调用函数的对象(如果没有对象调用,默认我window)
普通函数:如果没有返回值,结果为undefined
例子:
function fun(){
}
var fn = fun()
console.log(fn) //打印结果为undefined
构造函数:构造函数会马上创建一个新对象,并将该新对象作为返回值返回
例子:
function Fun(){
}
var fn = new Fun()
console.log(fn) //打印结果为fn{}