对这两行代码的理解:prototype(显示原型)__proto__(隐式原型)。当创建一个构造函数Star时,会自动创建一个prototype原型对象属性,new Star()后称ldh实例对象,Star -> ldh,ldh.__proto__ -> Star.prototype。constructor:指向该对象的构造函数,它可以是本身拥有或者继承来。单从constructor属性来讲只有prototype对象才有。每个函数在创建的时候,会给函数创建prototype,而函数创建的对象.__proto__ === 该函数.prototype,该函数.prototype.constructor===该函数本身。然后只要是对象那就存在__proto__原型,所以Star原型对象上也有个__proto,从这里就找到Object原型对象了,既然这里通过Star原型对象的__proto__找到了Object原型对象,那么他也应该存在Object构造函数,Object.prototype.constructor=== Object。然后Object原型对象也有__proto__属性,在网上找,就是原型链的顶端null





