提到js,原型和原型链是规避不过的,这之中存在几个容易混淆的概念,理解这些概念后,原型和原型链也就理解了
构造函数
function Person(){} 这段代码中Person就是构造函数
实例
let p=new Person() 这段代码中的p就是构造函数的一个实例
原型对象
constructor属性指向实例的构造函数
这里Person.prototype就是原型对象,Person.prototype.constructor属性指向构造函数Person
实例p可以通过__proto__属性访问其原型对象
上述原型对象Person.prototype也是有自己的原型对象的,就是Object.prototype
Person.prototype是Object.prototype的一个实例