构造函数
构造函数的目的:
利用构造函数来创造对象
为什么要使用构造函数?
利用构造函数,可以一次创建多个对象
之前的创建对象的方式一次只能创建一个对象。
构造函数创建对象的方式也就是将一次创建一个对象的方式封装成一个函数,多次调用函数就可以创建多个重复的对象。
注意,这个函数与不同函数不同,此函数内部封装的是对象而非普通代码。
什么是构造函数?
构造函数就是把我们对象里面的一些相同的属性和方法抽象出来封装到函数里面,它是一个特殊的函数,和new运算符一起使用。
- 声明函数
function 构造函数名(形参1,形参2,……){
this.属性1 = 值1;
this.属性2 = 值2;
……
this.方法 = function(形参){
操作语句;
};
} - 使用函数
var 变量名a = new.构造函数名(实参1,实参2,……);
var 变量名b = new.构造函数名(实参1,实参2,……);
var 变量名c = new.构造函数名(实参1,实参2,……);
……
多次调用,快速生成多个对象a,b,c - 输出结果
console.log(a.属性1);
console.log(b.属性2);
…… - 使用方法
a.方法名(实参);//执行操作语句
b.方法名(实参);
c.方法名(实参);
……
this指向问题
在定义对象的时候,可以在 值为 函数的代码中,使用 this 访问对象中的属性
函数中的 this 的指向
-
this 在调用的时候,才能确定 this 指向谁,在定义的时候,无法确定
-
函数 如果 是普通函数, 函数中的 this 默认指向 该函数 所定义的作用域范围内的对象
-
函数 如果 是 构造函数, 函数中的 this 指向 构造函数创建的 对象
-
构造函数中 ,可以 通过 new.target 来判断该函数是否是构造函数(了解)