1.普通函数是小驼峰写法,而构造函数是大驼峰写法。
//普通函数写法
function fun() {
var a = 1;
}
//构造函数写法
function Fun() {
var a = 1;
}
2.构造函数要new 创建对象,要不然和普通函数没什么区别
//普通函数
function fun(name, age, sex) {
this.name = name;
this.age = age;
this.sex = sex;
}
fun('solely', 19, 'male');
//fun.name = solely;
//fun.age = 19;
//fun.sex = male;
//构造函数
function Fun(name, age, sex) {
this.name = name;
this.age = age;
this.sex = sex;
}
var person = new Fun('solely', 19, 'male');
//person.name = solely;
//person.age = 19;
//person.sex = male;
3.普通函数this和构造函数this指向不一样
//普通函数this指向全局
//全局定义一个name
var name = "zs";
function fun() {
//局部调用一个name
var name = "fortune";
console.log(this.name);//执行结果输出'zs'
console.log(this); //打印this指向的是window
}
fun();
//构造函数this指向实例 也就是自己
function Fun() {
this.name = "fortune";
console.log(this);//打印this指向的是Fun()
}
var person = new Fun();