JavaScript 原型与原型链机制解析

作者:拾光时间:2026-10-24 11:54:32浏览:589

本文详解 JavaScript 中所有函数共有的 prototype 属性及其作用,阐述实例对象通过 __proto__ 指向构造函数原型的机制。通过代码示例展示如何沿原型链逐级查找属性直至 Object,揭示对象间通过原型链串联的关系。

1. 原型 prototype

在 JavaScript 中,所有函数都具备 prototype 属性,因此拥有该属性的对象均为函数。prototype 的主要功能是向对象添加方法或属性。


function persion(){}
persion.prototype.name = "xiaoming"
console.log(persion.prototype)//{name: "xiaoming", constructor: ƒ}

2. 原型指针:__proto__

若通过 persion 函数创建实例对象 Persion1,并使用 prototype 为其添加属性的写法如下:


function persion(){}
persion.prototype.name = "xiaoming"
let Persion1 = new persion();
console.log(Persion1) //控制台结果如下

打印实例 Persion1 的结果如下:

1. 原型 prototype

从上述打印结果可知,Persion1.__proto__.name 等于 persion.prototype.name,即实例对象的 __proto__ 属性指向其构造函数的 prototype。

理解上述概念后,原型链便易于掌握。我们可以通过 Persion1.__proto__.__proto__ 直接访问 Object 的方法。为更直观说明,参考以下代码:


function persion(){}
persion.prototype.name = "xiaoming"
let Persion1 = new persion();
console.log(Persion1.__proto__.__proto__.toString) //通过原型链查找到的Object的toString方法
console.log(Object.prototype.toString)//Object上的toString方法

控制台打印结果如下,这验证了原型链逐级查找的特性。

1. 原型 prototype

总结

任何对象均可通过原型链(即 __proto__ 属性)进行逐级查找,最终目标均为 Object,必经路径涉及 function。这种关系如同用链条串联,我们称之为原型链。

1. 原型 prototype

以上就是浅谈 JS 的原型和原型链的详细内容,更多关于 JS 的原型和原型链的资料请关注本站其它相关文章!

作者最新文章