原型、原型链

原型、原型链

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

​ 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

相关推荐
雮尘20 分钟前
如何在非 Claude IDE (TARE、 Cursor、Antigravity 等)下使用 Agent Skills
前端·agent·ai编程
icebreaker21 分钟前
Weapp-vite:原生模式之外,多一种 Vue SFC 选择
前端·vue.js·微信小程序
icebreaker27 分钟前
重走 Vue 长征路 Weapp-vite:编译链路与 Wevu 运行时原理拆解
前端·vue.js·微信小程序
wuhen_n31 分钟前
代码生成:从AST到render函数
前端·javascript·vue.js
Lee川32 分钟前
从异步迷雾到优雅流程:JavaScript异步编程与内存管理的现代化之旅
javascript·面试
喝咖啡的女孩33 分钟前
浏览器前端指南
前端
wuhen_n34 分钟前
AST转换:静态提升与补丁标志
前端·javascript·vue.js
喝咖啡的女孩34 分钟前
浏览器前端指南-2
前端
cxxcode44 分钟前
从 V8 引擎视角理解微任务与宏任务
前端
destinying1 小时前
性能优化之实战指南:让你的 Vue 应⽤跑得飞起
前端·javascript·vue.js