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

相关推荐
疯狂踩坑人几秒前
【Nodejs】Http异步编程从EventEmitter到AsyncIterator和Stream
前端·javascript·node.js
烧冻鸡翅QAQ8 分钟前
从0开始的游戏编程——开发前的编程语言准备(JAVAScript)
开发语言·javascript·游戏
saber_andlibert12 分钟前
【C++转GO】文件操作+协程和管道
开发语言·c++·golang
软弹17 分钟前
Vue2 - Dep到底是什么?如何简单快速理解Dep组件
前端·javascript·vue.js
Halo_tjn25 分钟前
Java IO流实现文件操作知识点
java·开发语言·windows·算法
小笔学长26 分钟前
事件委托:优化事件处理性能
javascript·性能优化·项目实战·前端开发·事件委托
FL162386312931 分钟前
VTK源码编译时候选qt5路径
开发语言·qt
Felven31 分钟前
C. Maximum Median
c语言·开发语言·算法
白兰地空瓶43 分钟前
告别 add(1, 2)!通过 JS 柯里化,让你的代码更加优雅
javascript·面试
ohyeah44 分钟前
柯理化(Currying):让函数参数一个一个传递
前端·javascript