对象.proto === 其构造函数.prototype
Object.prototype对象是所有对象的直接或间接的原型
所有函数(Object/Array/Function).proto === Function.prototype
注意:一般问什么的原型指的是xxx.proto
Object是由Function构造出来的,为什么Object.prototype是所有对象的原型,而不是Function.prototype呢?
-
最初开辟空间存放(即创建)Object.prototype对象、Function.prototype对象、Array.prototype对象,并且每个原型里的方法,都一一实现
并且,存放(即创建)构造函数对象Function
-
通过Function创建Object,即将Object对象的各种属性放在内存中(对应解释,Object是Function创建的),指明对象的__proto__指向Function.prototype
通过Function创建Array,即将Array对象的各种属性放在内存中,指明Array的__proto__指向Function.prototype
-
创建Window对象,其中包含属性Object、Array、Function
理解JS创建对象,就是开辟一块内存空间,存放对象的值,而没有取名字。是先有了具体内容再有了名字
从上面图中,印证了
Object.prototype对象是所有对象直接或间接的原型
Object.prototype.proto 是 null
所有函数(Object/Array/Function).proto === Function.prototype