原型与原型链的关系梳理

先下结论:

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

参考文章

相关推荐
小林爱6 分钟前
【Compose multiplatform教程14】【组件】LazyColumn组件
android·前端·kotlin·android studio·框架·多平台
过往记忆6 小时前
告别 Shuffle!深入探索 Spark 的 SPJ 技术
大数据·前端·分布式·ajax·spark
高兴蛋炒饭7 小时前
RouYi-Vue框架,环境搭建以及使用
前端·javascript·vue.js
m0_748240448 小时前
《通义千问AI落地—中》:前端实现
前端·人工智能·状态模式
ᥬ 小月亮8 小时前
Vue中接入萤石等直播视频(更新中ing)
前端·javascript·vue.js
神雕杨9 小时前
node js 过滤空白行
开发语言·前端·javascript
网络安全-杰克9 小时前
《网络对抗》—— Web基础
前端·网络
m0_748250749 小时前
2020数字中国创新大赛-虎符网络安全赛道丨Web Writeup
前端·安全·web安全
周伯通*9 小时前
策略模式以及优化
java·前端·策略模式
艾斯特_9 小时前
前端代码装饰器的介绍及应用
前端·javascript