什么是原型链?

简介: 什么是原型链?

原型链(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 中实现面向对象编程的核心机制之一。

目录
相关文章
|
2月前
|
JavaScript
什么是原型链?如何继承?
什么是原型链?如何继承?
33 0
|
2月前
|
JavaScript 前端开发
原型,原型链
原型,原型链
|
2月前
|
JavaScript 前端开发
prototype(原型对象)
原型对象(prototype)是 JavaScript 中一种特殊的对象,它用于实现对象之间的属性和方法共享。在 JavaScript 中,所有的对象都有一个原型(除了全局对象,如 Math、Date 等),当我们试图访问一个对象的属性或方法时,如果该对象本身没有这个属性或方法,Jav
13 1
|
12月前
|
JavaScript 前端开发
什么是原型链
什么是原型链
|
8月前
|
JavaScript 前端开发
原型和原型链
原型和原型链
22 0
|
9月前
38 # 简单描述原型链
38 # 简单描述原型链
20 0
|
12月前
|
存储 JavaScript 前端开发
深入理解原型与原型链
当我们在 JavaScript 中创建一个对象时,它会自动继承一个称为“原型”的对象。如果该对象访问一个属性或方法,但在自己的属性列表中找不到,它会沿着原型链向上查找,直到找到该属性或方法为止。在本篇文章中,我们将深入探讨 JavaScript 中的原型与原型链。
|
JavaScript
关于原型、原型链我所知道的
关于原型、原型链我所知道的
61 0
掌握原型链,再炒冷饭系列
我们知道每一个函数都有一个自身的prototype,每一个对象都有__proto__对象,而这个__proto__我们常称之为隐式原型,正因为它连接起了对象与构造函数的关系。 当我们访问一个对象时,首先会在自身属性上找,当自身属性找不到时,会到对象的隐式链上去找,如果隐式链上还没有,那么会到构造函数的原型上找,当原型上没有时,会到原型的隐式__proto__上去找,当这个属性还找不到时,就直接返回undefined了,因此才形成了一条原型链。
掌握原型链,再炒冷饭系列
|
自然语言处理 JavaScript 前端开发
什么是原型链和作用域链?
什么是原型链和作用域链?
什么是原型链和作用域链?