JavaScript中的构造函数
构造函数︰是一种特殊的函数
,主要用来初始化对象
,即为对象成员变量赋初始值,它总与new
运算符一起使用。我们可以把对象中一些公共的属性和方法抽取出来,然后封装到这个函数里面。
- 一次创建一个
对象
,里面很多的属性和有法是大量相同的。 - 因此我们可以利用函数的方法重复这些相同的代码我们就把这个函数成为
构造函数
。 - 有因为这个函数不一样,里面封装的不是普通代码,而是
对象
。 构造函数
就是把我们对象里面一些相同的属性和方法抽象出来封装到函数里面。
构造函数的语法格式
function 构造函数名() {
this.属性=值;
this.方法= function() {}
}
new 构造函数名();
- 构造函数名字首字母要大写
- 我们构造函数不需要return就可以返回结果
- 用法举例
构造函数和对象
- 构造函数,如
Stars()
,抽象
了对象的公共部分
,封装到了函数里面,它泛指某一大类( class ) - 创建对象,如
new Stars()
,特指某一个,通过new
关键字创建对象的过程我们也称为对象实例化
new
关键字执行过程
new构造函数
可以在内存中创建了一个空的对象
。this
就会指向刚才创建的空对象
。- 执行构造函数里面的代码给这个空对象添加属性和方法。
- 返回这个对象(所以构造函数里面不需要return)。
<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, '男');
</script>
借用父构造函数继承属性
<script>
// 1.父构造函数
function Father(uname, age){
// this指向父构造函数的对象实例
this.uname = uname;
this.age = age;
}
// 2 .子构造函数
function Son(uname,age) i
// this指向子构造函数的对象实例
Father.call(this, uname, age);
}
var son = new Son('刘德华', 18);
console.log(son);
</script>