原型与原型链的关系梳理

先下结论:

每个实例对象上的__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

参考文章

相关推荐
OEC小胖胖3 小时前
去中心化身份:2025年Web3身份验证系统开发实践
前端·web3·去中心化·区块链
vvilkim4 小时前
Electron 进程间通信(IPC)深度优化指南
前端·javascript·electron
ai小鬼头6 小时前
百度秒搭发布:无代码编程如何让普通人轻松打造AI应用?
前端·后端·github
漂流瓶jz6 小时前
清除浮动/避开margin折叠:前端CSS中BFC的特点与限制
前端·css·面试
前端 贾公子6 小时前
在移动端使用 Tailwind CSS (uniapp)
前端·uni-app
散步去海边6 小时前
Cursor 进阶使用教程
前端·ai编程·cursor
清幽竹客6 小时前
vue-30(理解 Nuxt.js 目录结构)
前端·javascript·vue.js
weiweiweb8886 小时前
cesium加载Draco几何压缩数据
前端·javascript·vue.js
幼儿园技术家6 小时前
微信小店与微信小程序简单集成指南
前端
我不吃饼干9 天前
鸽了六年的某大厂面试题:你会手写一个模板引擎吗?
前端·javascript·面试