- prototype 是对该函数以及其实例函数的公用说明, 可以理解为, 在实例化的时候, js 会一并把该函数的的 prototype 一并付给实例化的对象
- __proto__, 代表的是关于其父级的联系
function Person(){
}
let person = new Person();
person.__proto___=== Person.prototype // true
- 函数的 prototype !== __proto__
function Person(){}
1. Person.prototype ===Person.__proto__ // 不相等返回false
2. Person.prototype.__proto___===Person.__proto__.___proto___ // ture
重点解释下为什么第二条是 true, 首先万物皆对象, 所以
Person.prototype
是一个object
而Person.__proto___
也是一个的对象
所以 第二条也就是相等于:
(Person.prototype.__proto___===Person.__proto__.___proto___
)
object.__proto___=== object.___proto___
// 所以肯定是 true
相当于是Object.prototype