本文已参与「新人创作礼」活动,一起开启掘金创作之路
- 构造函数(Function、Array、Object)的
prototype和__proto__如何方便的区分开:
首先理解原型,__proto__用于存放共有属性的对象的地址,等同于其构造函数的prototype的地址。
我给自己总结的规律是:
prototype是给孩子的,因为孩子可以用自己的__proto__访问到,所以需要把共有属性的地址放里面。
而__proto__是给自己的,存自己的共有属性,所以存放创建自己的对象的属性的地址。
那么,如构造函数Object,prototype存放的是Object原型对象的地址,为了让创建出来的小object能访问到这些共有属性(涉及原型链知识)。__proto__就直接存放构建了自己的Function构造函数的prototype的地址,即Funtion原型的地址。
- 一些基本原理
1、对象.
__proto__===其构造函数.prototype2、Object.prototype是所有对象的直接或间接原型,它是根 3、所有函数(Function、Array、Object)都是由Function构造的,即函数.__proto__===Function.prototype;因而Function.__proto__===Function.prototype也成立
- JS世界
图来源:饥人谷方方老师上课画的