什么是构造函数?
首先在说明什么是构造函数之前,我们需要了解为什么需要构造函数。
在我们创建多个对象,当里面的属性或方法都是大量相同时(例如给很多个歌手创建他们的个人信息),需要给同一个属性多次赋值很麻烦,一旦其中有某个属性需要变更,就要重新更改多次。如果只是创建一两个对象还好,如果是十几个甚至上百个,就显得代码十分臃肿。
因此也就引出了构造函数的概念,使用构造函数就可以实现一次声明,多次使用的效果,减少重复的代码。所以构造函数就是通过函数创建多个属性和方法相同的对象。它抽取了对象的公共部分,封装到函数里面,它泛指某一大类(class),类似于JAVA中的类。
构造函数的语法格式:
function 构造函数名(){
this.属性 = 值;
this.方法 = function(){
方法体
}
}
new 构造函数名(需要传入的对象参数);
//例如
function Star(uname.age,sex){
this.name = uname;
this.age = age;
this.sex = sex;
this.hobbit = function(play){
console.log(play)
}
}
var xiaoming = new Star('小明',18,'男');
如何使用构造函数所创建出来的对象?
对象赋值的变量名.属性
对象赋值的变量名.方法();
console.log(xiaoming.name); //对象名.属性名
console.log(xiaoming['age']); //对象名['属性名']
xiaoming.hobbit('开始学习'); //调用对象中的hobbit函数,输出 开始学习
构造函数需要注意的地方:
1.构造函数名首字母必须要大写
2.构造函数不需要return就可以返回值,依靠的是new关键字的作用
3.调用构造函数必须使用new关键字
通过 new 关键字创建对象的过程,我们也称为对象实例化
关于构造函数中new关键字需要做的四件事情:
1.创建一个空的对象
2.让this指向这个新的对象
3.执行构造函数里面的代码,给新的对象添加属性和方法
4.返回这个新对象(这也是为什么构造函数不需要return关键字的原因)