1.什么是构造函数
在JavaScript中,用new关键字来调用的函数,称为构造函数。构造函数首字母一般大写。
2.为什么需要构造函数
因为我们一次构建一个对象,里面很多的属性和方法是大量相同的 我们只能复制。
举个例子:
在学构造函数前我们学的两种创建对象的方法一次只能创建一个对象。
<script>
var ldh = {
uname: '刘德华',
age: 55,
sing: function() {
console.log('冰雨');
}
}
var zxy = {
uname: '张学友',
age: 51,
sing: function() {
console.log('李香兰');
}
}
</script>
上面是刘德华,张学友,还有郭富城,黎明,难道我们都还要再一一创建吗?
因此我们可以利用函数的方法,重复这些相同的代码,我们就把这个函数称为 构造函数。
又因为这个函数不一样,里面封装的不是普通的代码而是对象。
构造函数就是把我们对象里面一些相同的属性和方法抽象出来封装带函数里面。
3.利用构造函数创建对象
语法结构
fnction 构造函数() {
this.属性 = 值;
this.方法 = function() {}
}
new 构造函数名()
举个例子
<script>
function Star (uname, age, sex) {
this.name = uname;
this.age = age;
this.sex = sex;
this.sing = function(sang) {
console.log(sang);
}
}
var ldh = new Star('刘德华',18,'男');//调用函数返回的是一个对象
console.log(ldh.name);
console.log(ldh['age']);
ldh.sing('冰雨);
var zxy = new Star('张学友', 19, '男');
console.log(zxy.name);
console.log(zxy.age);
zxy.sing('李香兰');
</script>
封装构造函数的过程比较麻烦,但一旦封装成功,我们再创建对象就会变得非常轻松,这也是我们为什么要使用构造函数
在使用对象字面量创建一系列同类型的对象时,这些对象具有一些相似的属性和方法,此时会产生很多重复的代码,而使用构造函数就可以实现代码复用。
4.构造函数的注意点
- 构造函数名首字母需要大写
- 我们构造函数不需要return 就可以返回值
- 我们调用构造函数必须使用new
- 我们只要new Star 调用函数就创建一个对象ldh {}
- 我们属性和方法前面必须加this
5.构造函数与对象的区别
构造函数,如Star(),抽象了对象的公共部分,封装到了函数里面,他泛指某一大类(class)。
创建对象,如New Star(),特指某一个,通过new关键字创建对象的过程我们称为对象实例化。