美文网首页
JavaScript的原型链

JavaScript的原型链

作者: JohnYuCN | 来源:发表于2022-12-04 17:59 被阅读0次
    image.png

    一、基本原理解释:

    1. 所有对象(包括函数)都是通过__proto__指向某个 原型对象
    2. 所有对象(除了null)都会通过__proto__ 直接或间接的指向无名的花对象
    3. 每个函数都会额外具备一个prototype的指针,指向到那个原型对象
    4. new 函数名()产生的对象,其__proto__就会指向那个原型对象
    5. 原型对象所有的成员都会被指向它的那些对象访问到(直接或间接),所以可以认为:函数是对象的工厂。
    6. 针对原型对象的读策略是:依链查找,直到找到花对象;而写策略是:直接在对象本身进行挂载或覆盖。

    二、进阶的认知:

    1. 函数自身也是对象,其__proto__ 指向的对象是一个名字为Function的函数的prototype指向的对象,所以可以认为Function是函数的工厂,可以如下描述:
    var Object=new Function();
    var Date=new Function();
    

    当然,如果是我们自定义的函数本质上是如下方式定义的:

    var Person=new Function();
    

    传参和函数体如下:

    var Person=new Function("name","this.name=name");
    
    1. JS的设计者要完成: Function自身是函数,但也是对象的目标,所以最后提出以下设想:Function对象是Function函数产生的!基于以上设想,将Function做为对象使用的__proto__指向到Function做为函数的__prototype__,完成全部的设计。

    相关文章

      网友评论

          本文标题:JavaScript的原型链

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