原型与原型链的关系梳理

先下结论:

每个实例对象上的__proto__,指向这个构造函数的构造器,然后这个构造函数的构造器prototype上有个__proto__,它指向的是Object上的prototypeObjectprototype上面个__proto__属性指向为null,这样的一层层关系就形成的原型链

prototype 是什么

prototype原型也叫原型对象是函数上的一个属性

js 复制代码
function p() { }
console.dir(p)

它是函数上的一个属性并且是个对象类型的属性

js 复制代码
 function Person(name) {
  this.name = name
}
const p1 = new Person()
console.log(p1.prototype) 

实例对象上没有这个属性

proto 是什么

__proto__隐式原型是对象上的属性

js 复制代码
 function Person(name) {
  this.name = name
}
const p1 = new Person()   
console.log(p1.__proto__) 
js 复制代码
function p() { }
console.dir(p)

为什么函数上也有这属性,__proto__不是对象上的属性吗?答:在JavaScript中,函数也是对象

验证原型链关系

js 复制代码
function Person(name) {
  this.name = name
}
const p1 = new Person()

console.log('p1.__proto__ === Person.prototype', p1.__proto__ === Person.prototype) // true
console.log('Person.prototype.__proto__ === Object.prototype', Person.prototype.__proto__ === Object.prototype) // true
console.log('Object.prototype.__proto__', Object.prototype.__proto__) // null

参考文章

相关推荐
GreenTea7 小时前
GrokBot 核心成员 Lauren Tan:每月交付 2000 个 PR 的人,是怎么用 AI 的
前端·后端·架构
mCell9 小时前
用 Knip 清理 AI Coding 留下的冗余代码
前端·ai编程·前端工程化
笃行3509 小时前
使用Rokid AIUI做了一个童年推箱子游戏
前端
excel10 小时前
前端加密的作用与使用场景
前端
计算机魔术师11 小时前
纽约时报版权诉讼披露:微软高管内部称训练 AI 是人类历史上最大规模劳动窃取
前端
去伪存真12 小时前
大模型的参数量为什么那么大?
前端·人工智能
IT_陈寒12 小时前
Java空指针这次真把我坑惨了
前端·人工智能·后端
八荒启·交互动画13 小时前
# Web特效020—让 Web 特效真正动起来:时间循环应该怎么接
前端·webgl·网页特效·八荒启-交互动画·八荒启
动恰客流统计13 小时前
线下零售数字化浪潮下,客流统计的3个核心发展趋势
大数据·前端·人工智能
用户9385156350714 小时前
从小米前端面试题,彻底搞懂闭包、作用域链与 useState 惰性初始化
前端·面试