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)。

相关推荐
小雅痞几秒前
[Java][Leetcode simple] 28. 找出字符串中第一个匹配项的下标
java·开发语言·leetcode
likerhood5 分钟前
java中的不可变类(Immutable)
java·开发语言
Ulyanov10 分钟前
《PySide6 GUI开发指南:QML核心与实践》 第一篇:GUI新纪元——QML与PySide6生态系统全景
开发语言·python·qt·qml·雷达电子对抗
这里不能睡觉39 分钟前
js 实现 Blob、File、ArrayBuffer、base64、URL 之间互转
javascript
Rust研习社40 分钟前
从入门到实践:Rust 异步编程完全指南
开发语言·后端·rust
拉拉肥_King42 分钟前
Ant Design Table 横向滚动条神秘消失?我是如何一步步找到真凶的
前端·javascript
yaoxin52112344 分钟前
389. Java IO API - 获取文件名
java·开发语言·python
吴声子夜歌1 小时前
Vue3——新语法
前端·javascript·vue.js
lhbian1 小时前
AI编程革命:Codex让脚本开发提速10倍
开发语言·汇编·jvm·c#
jiayong231 小时前
第 36 课:任务详情抽屉快捷改状态
开发语言·前端·javascript·vue.js·学习