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

相关推荐
REDcker1 分钟前
JS 与 C++ 语言绑定技术详解
开发语言·javascript·c++
June`1 分钟前
C++11新特性全面解析(三):智能指针与死锁
开发语言·c++
认真敲代码的小火龙3 分钟前
【JAVA项目】基于JAVA的医院管理系统
java·开发语言·课程设计
zlpzlpzyd9 分钟前
vue.js 3中全局组件和局部组件的区别
前端·javascript·vue.js
浩星19 分钟前
css实现类似element官网的磨砂屏幕效果
前端·javascript·css
一只小风华~22 分钟前
Vue.js 核心知识点全面解析
前端·javascript·vue.js
2022.11.7始学前端26 分钟前
n8n第七节 只提醒重要的待办
前端·javascript·ui·n8n
徐小夕35 分钟前
知识库创业复盘:从闭源到开源,这3个教训价值百万
前端·javascript·github
xhxxx1 小时前
函数执行完就销毁?那闭包里的变量凭什么活下来!—— 深入 JS 内存模型
前端·javascript·ecmascript 6
曼巴UE51 小时前
UE5 C++ 动态多播
java·开发语言