js中的原型链

 

 

每一个构造函数中都含有prototype原型对象,这个对象包含了constructor和__proto__。

 

 

 constructor,人如其名,里面的value当然是是构造函数的函数体。

 __proto__则指向objcet构造函数的prototype原型对象

(结果为true)

 

所以能证明构造函数Star的 prototype原型对象指向object构造函数的prototype原型对象。

object构造函数中也有prototype原型对象,它也包含了constructor和__proto__。

根据第一个图所述,object构造函数的protype指向谁呢?指向null。

 

有一个有意思的情况就是“我老子的老子还是我老子”

var 一个实例对象liudehua

 

 

 

 

 

 按照惯性思维来说,实例对象中的__proto__一定是指向Star构造函数的prototype原型对象,可是结果却指向了Object

 

 

 说明new Star(’ldh‘,30)生成的是一个对象,对象统一继承于Object。

虽然ldh实例有了Star的函数体,但ldh实例的却有两个父亲,一个Star隐形父亲,一个Object不隐型父亲。恰好object还是Star的父亲,您说奇葩不奇葩。

所以才有了段子一般有趣的说法“我爸爸的爸爸还是我爸爸"。

posted @ 2021-03-16 00:44  可口better百事  阅读(52)  评论(0)    收藏  举报