美文网首页
JS中的原型链

JS中的原型链

作者: Mica_马超 | 来源:发表于2019-05-23 13:38 被阅读0次

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

    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

    相关文章

      网友评论

          本文标题:JS中的原型链

          本文链接:https://www.haomeiwen.com/subject/oyimzqtx.html