#再读JS# (5)JS世界

  • 构造函数(Function、Array、Object)的prototype__proto__如何方便的区分开:

首先理解原型,__proto__用于存放共有属性的对象的地址,等同于其构造函数的prototype的地址。

我给自己总结的规律是:
prototype是给孩子的,因为孩子可以用自己的__proto__访问到,所以需要把共有属性的地址放里面。
__proto__是给自己的,存自己的共有属性,所以存放创建自己的对象的属性的地址。

那么,如构造函数Object,prototype存放的是Object原型对象的地址,为了让创建出来的小object能访问到这些共有属性(涉及原型链知识)。__proto__就直接存放构建了自己的Function构造函数的prototype的地址,即Funtion原型的地址。


  • 一些基本原理
    1、对象.__proto__===其构造函数.prototype
    2、Object.prototype是所有对象的直接或间接原型,它是根
    3、所有函数(Function、Array、Object)都是由Function构造的,即函数.__proto__===Function.prototype;因而Function.__proto__===Function.prototype也成立



  • JS世界
    #再读JS# (5)JS世界
    图来源:饥人谷方方老师上课画的