原型继承是 JavaScript 中实现面向对象编程的一种机制。在 JavaScript 中,每个对象都有一个原型,原型是一个对象,它包含了对象的属性和方法。当我们试图访问一个对象的属性或方法时,JavaScript 先在对象本身中查找,如果找不到,就会去对象的原型中查找。
在 JavaScript 中,我们可以通过创建一个新的对象并将其原型设置为另一个对象来实现原型继承。这样,新对象将继承原型对象的属性和方法。
例如,我们可以使用 Object.create() 方法来创建一个新对象,并将其原型设置为另一个对象:
var parent = {
name: 'Parent',
sayHello: function() {
console.log('Hello, I am ' + this.name);
}
};
var child = Object.create(parent);
child.name = 'Child';
child.sayHello(); // 输出:Hello, I am Child
在这个例子中,parent 是一个拥有 name 属性和 sayHello 方法的对象。通过调用 Object.create(parent),我们创建了一个新的对象 child,并将其原型设置为 parent。因此,child 继承了父对象 parent 的属性和方法。
当我们尝试访问 child 的属性或方法时,JavaScript 先在 child 对象中查找。如果找不到,它会继续在 child 对象的原型(即 parent 对象)中查找,以此类推。这样就实现了原型链的机制,允许对象通过原型继承属性和方法。
需要注意的是,原型继承是一种动态的机制,即对象和其原型之间的关系可以在运行时修改。这意味着我们可以在原型对象上添加、修改或删除属性和方法,并且这些更改会立即影响到继承自该原型的对象。