返回
原型对象-企业招聘常用题解析
前端
2024-01-20 06:10:45
在JavaScript中,当通过new调用函数创建实例后,该实例内部包含一个指针 [[Prototype]] 指向构造函数的原型对象。该属性为内部属性,无法直接访问,但在Firfox、Chrome和Safari中有一个 proto 属性可以访问到构造函数的原型。
原型对象提供了继承机制,使得所有实例可以共享原型对象中的属性和方法。这种继承关系使代码更加简洁、易于维护,并有助于减少内存消耗。
面试题目解析:
- 什么是原型对象?
原型对象是构造函数的原型,它包含了构造函数的所有属性和方法,并作为所有实例的基准。原型对象提供了继承机制,使得所有实例可以共享原型对象中的属性和方法。
- 如何访问原型对象?
在Firfox、Chrome和Safari中,可以使用__proto__属性访问原型对象。例如:
function Person(name) {
this.name = name;
}
const person = new Person('John Doe');
console.log(person.__proto__);
- 原型对象有什么用?
原型对象提供了继承机制,使得所有实例可以共享原型对象中的属性和方法。这种继承关系使代码更加简洁、易于维护,并有助于减少内存消耗。
- 如何修改原型对象?
可以使用__proto__属性修改原型对象。例如:
function Person(name) {
this.name = name;
}
Person.prototype.greet = function() {
console.log(`Hello, my name is ${this.name}.`);
};
const person = new Person('John Doe');
person.__proto__.greet(); // Hello, my name is John Doe.
- 原型对象和实例对象有什么区别?
原型对象是构造函数的原型,它包含了构造函数的所有属性和方法,并作为所有实例的基准。原型对象提供了继承机制,使得所有实例可以共享原型对象中的属性和方法。
实例对象是通过new调用构造函数创建的,它具有自己的属性和方法,并继承原型对象中的属性和方法。
拓展阅读: