原型、原型链

原型、原型链

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

​ 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

相关推荐
workflower2 小时前
时序数据获取事件
开发语言·人工智能·python·深度学习·机器学习·结对编程
CoderYanger3 小时前
C.滑动窗口-求子数组个数-越长越合法——2799. 统计完全子数组的数目
java·c语言·开发语言·数据结构·算法·leetcode·职场和发展
C++业余爱好者3 小时前
Java 提供了8种基本数据类型及封装类型介绍
java·开发语言·python
林杜雨都3 小时前
Action和Func
开发语言·c#
皮卡龙3 小时前
Java常用的JSON
java·开发语言·spring boot·json
火山灿火山3 小时前
Qt常用控件(三)
开发语言·qt
PineappleCoder3 小时前
还在重复下载资源?HTTP 缓存让二次访问 “零请求”,用户体验翻倍
前端·性能优化
拉不动的猪3 小时前
webpack编译中为什么不建议load替换ast中节点删除consolg.log
前端·javascript·webpack
李姆斯3 小时前
Agent时代下,ToB前端的UI和交互会往哪走?
前端·agent·交互设计
利刃大大4 小时前
【JavaSE】十三、枚举类Enum && Lambda表达式 && 列表排序常见写法
java·开发语言·枚举·lambda·排序