构造函数:
构造函数与普通函数的创建方法一致,但是构造函数是专门用来处理对象相关问题的。普通函数可以直接调用,而构造函数必须使用new关键字来调用。
构造函数调用流程:
- 立即创建一个新的对象;
- 将新建的对象设置为函数中的this,可以使用this来引用新建的对象;
- 逐行执行函数中的代码;
- 将新建的对象作为返回值返回
当使用同一个构造函数建立的对象成为同一类对象,而每个不同的构造函数成为一类;通过构造函数建立的对象成为该类的实例。
当所有的类中都调用同一个函数方法时,每新建一个对象,都要新建一次函数方法。为了简化,将函数方法定义到全局,每个类分别去调用这个函数方法。
instanceof:
对象 instanceof 构造函数;
使用instanceof来检查某个对象是否是类的实例,如果正确返回true,否则返回false;
所有对象与Object进行检查时均会返回true,所以所有的对象都是Object类的实例。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>构造函数</title>
<script>
function show() {
document.write("Name: " + this.name + "<br>");
document.write("Age: " + this.age + "<br>");
document.write("Sex: " + this.sex + "<br>");
}
function Student(name, age, sex) {
this.name = name;
this.age = age;
this.sex = sex;
this.show = show;
}
function Teacher(name, age, sex) {
this.name = name;
this.age = age;
this.sex = sex;
this.show = show;
}
var s1 = new Student("小明", 15, "男");
var s2 = new Student("小红", 17, "女");
var t1 = new Student("张三", 45, "男");
var t2 = new Student("李四", 27, "女");
s1.show();
s2.show();
t1.show();
t2.show();
</script>
</head>
<body>
</body>
</html>