什么是原型链?

原型链(Prototype Chain)是 JavaScript 中用于实现继承和对象之间关系的一种机制。在 JavaScript 中,每个对象都有一个内部链接(prototype),它指向另一个对象。这个被指向的对象就是原型对象(prototype object),它包含了对象的共享属性和方法。

  1. 每个对象都有一个原型对象:在 JavaScript 中,几乎所有的对象都具有一个内部的 __proto__ 属性,它指向该对象的原型对象。

  2. 原型对象也可以有原型:原型对象也是对象,因此它们也可以有自己的原型,形成一条链,依次追溯到最顶层的对象,通常是 Object.prototype

  3. 属性和方法查找:当您尝试访问对象的属性或方法时,如果该对象本身没有这些属性或方法,JavaScript 引擎将继续在该对象的原型对象上查找,然后在原型对象的原型对象上查找,直到找到匹配的属性或方法或达到原型链的末端。

这个机制允许对象之间共享属性和方法。当一个对象的原型对象上定义了属性或方法,所有基于该原型对象创建的对象都可以访问和继承这些属性和方法。

function Animal(name) {
  this.name = name;
}

Animal.prototype.speak = function() {
  console.log(this.name + ' makes a sound');
};

const cat = new Animal('Whiskers');
cat.speak(); // 输出 "Whiskers makes a sound"

cat 对象继承了 Animal.prototype 中的 speak 方法,因为它的原型链指向 Animal.prototype,从而能够调用 speak 方法。

原型链在 JavaScript 中是一个关键的概念,它使对象之间能够共享行为和属性,并支持对象之间的继承关系。这是 JavaScript 中实现面向对象编程的核心机制之一。

你可能感兴趣的:(原型模式)