JS中的原型链

在了解原型链之前,我们首先理解几个概念:

JavaScript内置对象

所谓的内置对象 指的是:JavaScript本身就自己有的对象 可以直接拿来就用。例如Array String 等等。JavaScript一共有12内置对象

  • 函数构造器对象(10个):它们都有 __proto__prototype 属性,typeof "function"

StringNumberBooleanArrayFunctionDateRegExpErrorObjectEvent

  • 其他对象:它们只有__proto__属性, typeof "object"

MathJSON

原型(prototype),原型指针(__proto__),原型链,构造器指针(constructor)

  • 原型(prototype)
  • 所有函数都有一个prototype(原型)属性,属性值是一个普通的对象
  • 原型链:

javascript中,每个函数都会初始化一个属性,原型(prototype),当我们需要访问这个函数的某个属性时,就会去到prototype中寻找这个属性,若没有找到这个属性,prototype中也存在自己的prototype,于是乎就这样一直往上查找。
当访问一个对象的某个属性时,会先在这个对象本身属性上查找,如果没有找到,则会去它的__proto__隐式原型上查找,即它的构造函数的prototype,如果还没有找到就会再在构造函数的prototype__proto__中查找,这样一层一层向上查找就会形成一个链式结构,我们称为原型链。

  • 原型指针(__proto__):

指向构造该对象的构造函数的原型(prototype)

  • 构造器指针(constructor):

prototype中有一个constructor属性,这个属性的值就是指向原型的构造器(构造函数)

为了便于理解我画了一张图:


prototype.jpg
实例图解
Function.jpg

https://www.cnblogs.com/syomm/p/5942165.html
https://www.cnblogs.com/dominik/articles/10301449.html
https://www.cnblogs.com/douglasryan/p/10461866.html
https://www.cnblogs.com/yan-yubo/p/Javascript-built_in_objects.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容