3.JS中用来创建对象的“构造函数”
构造函数创建对象(类):
创建一个构造函数用来创建(Person)对象:
构造函数创建方式和普通函数区别是“构造函数首字母大写”
function Person(name, age) {
this.name = name ;
this.age = age;
this. sayName = function() {
alert(this.name);
}
};
“普通函数”是直接调用“fun()”,而“构造函数”需要使用“new”关键字来调用
var per = Person( "小武", 18); // 普通函数调用
console.log(per); ➡ Undefined(函数无返回值时输出Undefined)
var per = new Person( "小武", 18); // 构建对象
console.log(per); ➡ Object类型
构造函数的执行流程:
1.立刻创建一个新的对象
2.将新建的对象设置为函数中“this” ,在构造函数中可以使用“this”来引用新建的对象
3.逐行执行函数中的代码
4.将新建的对象作为返回值返回
使用同一个构造函数创建的对象,称为一类对象,也将一个“构造函数”称为一个“类”
将通过一个构造函数创建的对象,称为是该“类的实例”
this的情况:
1.当以函数的形式调用时,this是window
2.当以方法的形式调用时,谁调用方法this就是谁
3.当以构造函数的形式调用时,this就是新创建的那个对象
类实例的检查:
使用“instanceof”可以检查一个对象是否是一个类的实例
console.log(per instanceof Person);
所有的对象都是“Object”的后代,所以任何对象和“Object”做“instanceof”检查时都会返回“true”