原型、原型链

原型、原型链

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

​ 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

相关推荐
Death2002 分钟前
Qt 中的 QListWidget、QTreeWidget 和 QTableWidget:简化的数据展示控件
c语言·开发语言·c++·qt·c#
六点半8884 分钟前
【C++】速通涉及 “vector” 的经典OJ编程题
开发语言·c++·算法·青少年编程·推荐算法
惜.己4 分钟前
javaScript基础(8个案例+代码+效果图)
开发语言·前端·javascript·vscode·css3·html5
niu_sama8 分钟前
基于muduo库函数实现protobuf协议的通信
开发语言·qt
不写八个10 分钟前
Qt教程(001):Qt概述与安装
开发语言·qt
quaer15 分钟前
Open-Sora全面开源?
开发语言·算法·机器学习·matlab·矩阵
hakesashou19 分钟前
python如何比较字符串
linux·开发语言·python
什么鬼昵称27 分钟前
Pikachu-csrf-CSRF(get)
前端·csrf
yufei-coder44 分钟前
C#基础语法
开发语言·c#·.net
长天一色1 小时前
【ECMAScript 从入门到进阶教程】第三部分:高级主题(高级函数与范式,元编程,正则表达式,性能优化)
服务器·开发语言·前端·javascript·性能优化·ecmascript