1、什么是构造函数?
构造函数是一种特殊类型的函数,用于创建和初始化对象。它们通常用于创建具有相同属性和方法的多个对象实例。
构造函数就是提供一个生成对象的模板,并且描述对象的基本结构的函数。
2、构造函数的特点
- 名称: 构造函数的名称通常以大写字母开头,以便与普通函数区分开来。
- 对象初始化: 构造函数负责初始化对象实例的属性和方法。在构造函数内部,使用 this 关键字引用正在创建的对象,并为其设置属性和方法。
- 创建对象实例: 通过使用 new 关键字调用构造函数,可以创建一个新的对象实例。
- 参数传递: 构造函数可以接受参数,在创建对象实例时通过参数进行对象的初始化。参数可以在构造函数内部使用,用于设置对象属性的初始值。
- 返回对象实例: 当使用 new 关键字调用构造函数时,它会自动返回一个新的对象实例。
// 创建一个构造函数
function Person(name, age, phone) {
this.name = name;
this.age = age;
this.phone = phone;
}
在上面代码中我们创建了一个构造函数,下面我们使用new关键字调用构造函数来创建实例
var res1 = new Person('张三', 18, 123456789)
var res2 = new Person('李四', 19, 987654321)
var res3 = new Person('王五', 20, 465434321)
var res4 = new Person('赵六', 22, 987657445)
console.log(res1); // {name: '张三', age: 18, phone: 123456789}
console.log(res2); // {name: '李四', age: 19, phone: 987654321}
console.log(res3); // {name: '王五', age: 20, phone: 465434321}
console.log(res4); // {name: '赵六', age: 22, phone: 987657445}
3、new关键字做了什么?
- 1、创建了一个空对象
- 2、将构造函数的原型 [[prototype]] 指向构造函数的原型对象 prototype
- 3、执行这个函数里面的代码,给新对象增加属性和方法
- 4、返回这个对象,这个对象称为构造函数 Person 的实例对象