原型、原型链

原型、原型链

一、原型的作用:(两条)

​ 1、节省内存空间

​ 2、实现数据共享(继承)

二、原型、构造函数、实例对象三者关系:

​ 结论1、任何一个函数都有prototype属性,本身是一个对象

​ 结论2、构造函数也有prototype属性,本身是一个对象,我们称之为原型

​ 结论3、原型上的属性和方法都可以被实例化对象所继承 (重点)

​ 结论4、任何一个对象都有constructor属性,实例化对象的constructor属性指向构造函数

​ 结论5、原型也是对象也有constructor属性,原型对象的constructor属性指向构造函数

​ 结论6、任何一个对象都有 __ proto __ 属性,实例对象的 __ proto __ 属性指向构造函数的原型

三、原型链:

在javascript中每个对象都会有一个__ proto __属性,当我们访问一个对象的属性时,

如果这个对象内部不存在这个属性,那么它就会去__ proto __ 里去找这个属性,这个 __ proto__ 又会有自己的__ proto __

四、原型链最终指向null

五、实例化对象的属性查找规则:

​ 先从构造函数中查找,有就返回,没有从原型链上查找,有就返回,没有返回undefined

六、补充:

​ 1、任何一个对象都有__ proto __ 属性,实例对象的__ proto __属性指向构造函数的原型

​ 2、原型也是对象也有__ proto __ 属性,原型对象的__ proto __指向Object构造函数的原型

​ 3、Object.prototype也是对象也有__ proto __ 属性,Object.prototype的 __ proto __指向null

相关推荐
前端太佬几秒前
微信小程序支付全流程实战指南(Node.js后端篇)
前端·javascript·微信小程序
_十六几秒前
面试官最爱问的 TypeScript 装饰器:核心原理与实战技巧全解析.md
前端·typescript
代码搬运媛几秒前
mitt 事件发布-订阅库在 react 中的使用
前端
小桥风满袖2 分钟前
Three.js-硬要自学系列17 (拉伸、扫描、多边形轮廓简介、轮廓圆弧、多边形内孔)
前端·css·three.js
Ryan今天学习了吗3 分钟前
从零开始实现命令式组件ElMessage(附代码)
前端
用户2031196600963 分钟前
padding和frame在使用中的顺序问题
前端
资深前端外卖员4 分钟前
【nodejs高可用】Nodejs应用安全防范的问题总结
前端·javascript
袁煦丞4 分钟前
高效文件传输工具FastSend:cpolar内网穿透实验室第567个成功挑战
前端·程序员·远程工作
嘻嘻嘻嘻嘻嘻ys9 分钟前
《Spring Boot 3响应式架构实战:R2DBC驱动的高并发数据持久化革命》
前端·后端