我觉得三者的关系用一个图和几行代码就能理解了,图是别人的,代码是我的
你就把prototype这个属性看作是构造函数里面的一个属性就好理解了
function Person(){
this.name = "bobo";
prototype:{
shift:function(){},
age:11
}
}
const adult = new Person();
Person.prototype == adult.__proto__
Person.prototype.constructor = function Person(){...}
验证一下,prototype是不是相当于Person构造函数的一个属性
console.log( adult.__proto__.name) //undefined
console.log( adult.__proto__.getname) // function(){..}
喜喜,是不是好理解多了