JavaScript完整原型链

在 JavaScript 中,每个函数都有一个prototype属性,这个属性是一个对象。当通过一个构造函数创建一个新的对象时,这个新对象会自动拥有一个内部属性[[Prototype]](在一些浏览器中可以通过__proto__访问,不过这是一个非标准的访问方式),它指向构造函数的prototype对象。

例如,有一个构造函数function Person(name) { this.name = name; },当我们创建一个Person的实例let person = new Person('John');,person对象的[[Prototype]](proto)就指向Person.prototype。

当我们访问一个对象的属性时,JavaScript 首先会在对象自身的属性中查找。如果没有找到,它会沿着对象的[[Prototype]](proto)所指向的对象(即构造函数的prototype)继续查找。这个查找过程会一直沿着[[Prototype]]链向上进行,直到找到目标属性或者到达Object.prototype(因为所有对象的原型链最终都会指向Object.prototype)。

相关推荐
DLite1 小时前
Python静态类型设计:语法割裂的槽点
开发语言·python
leiming61 小时前
c++ set容器
开发语言·c++·算法
岁岁的O泡奶2 小时前
NSSCTF_crypto_[LitCTF 2024]common_primes
开发语言·python·算法
资生算法程序员_畅想家_剑魔2 小时前
Java常见技术分享-28-事务安全-事务日志-事务日志流程
java·开发语言
玄同7652 小时前
Python 系统编程双雄:sys 与 os 模块深度实践指南
开发语言·数据库·人工智能·windows·笔记·python·microsoft
Edward.W2 小时前
Python实现文字转ASCII艺术字生成器
开发语言·python
POLITE32 小时前
Leetcode 21.合并两个有序链表 JavaScript (Day 10)
javascript·leetcode·链表
SatVision炼金士2 小时前
SDK管理本地java版本
java·开发语言·sdkman
奕成则成2 小时前
Python 创建虚拟环境
开发语言·python
独自破碎E2 小时前
什么时候@Async会失效?
java·开发语言