通过一个对象的__proto__可以找到它的原型对象,原型对象也是一个对象,就可以通过原型对象的__proto__,最后找到了我们的 Object.prototype, 从实例的原型对象开始一直到 Object.prototype 就是我们的原型链
补充
补充:原型链是 JS 实现继承的底层机制。每个对象都有一个隐式原型
__proto__指向构造函数的prototype;访问对象属性时,若自身没有则沿__proto__向上查找,直到Object.prototype为止,再往上就是null,整条链路即"原型链"。函数的prototype用来挂载被实例共享的方法,__proto__决定"我从哪儿继承"。关键关系:
obj.__proto__ === Constructor.prototypeConstructor.prototype.__proto__ === Object.prototypeObject.prototype.__proto__ === null
function Foo() {}
const f = new Foo()
console.log(f.__proto__ === Foo.prototype) // true
console.log(Foo.prototype.__proto__ === Object.prototype) // true
console.log(Object.prototype.__proto__ === null) // true
来源整理自:vue3js.cn 面试官系列



