⼀、什么是构造函数(10分)
构造函数就是构造器函数(constructor function)。⼀个⽤于构建多个对象的特殊函数。
⼆、简述构造函数的工作原理(20分)
- 创建⼀个空对象并将其分配给变量this 。
- 将参数“zhangsan”和“18”分配给对象的 name和 age属性。
- 返回 this
三、使⽤new调⽤构造函数创建实例对象的问题是什么(10分)
通过构造器函数向对象添加方法的缺点是:当创建多个对象实例时, this.sayHi 被添加到每⼀个实例对象中,也就是说内存使⽤效率降低:每个实例的 sayHi ⽅法会在内存堆中创建存储空间。
当创建多个对象实例时,内存使⽤效率降低,内存堆中创建存储空间。
四、我想为实例对象(构造函数:Car())添加⼀个 start(){console.log('启动')} 方法,请写出语句(10分)
function Car(name,age){
this.name = name;
this.age = age;
}
Car.prototype.start = function(){
console.log('启动')
}
console.log(Car)
const car1 = new Car('张三',20)
const car2 = new Car('张三',20)
console.log(car1.start === car2.start)
五、请阐述你对”对象的原型式图“的理解(50分)
- 任何构造函数内部都有 prototype 属性:该属性指向⼀个被称为 原型 的对象
- 任何 原型 对象内部都有⼀个 constructor 属性: 该属性指向构造函数 User()
- 通过关键词 new 调用构造函数User创建了实例对象 user1
- 在创建实例对象的过程中,构造函数⾃动为实例对象分配了⼀个⽗级对象,这个父级对象就是实例对象
的 原型 对象。
- 在创建实例对象的过程中,构造函数⾃动为实例对象分配了⼀个⽗级对象,这个父级对象就是实例对象
- 任何实例对象上都有⼀个 proto 属性,该属性指向其 原型 对象