原型和原型链

原型

为解决构造函数声明对象时浪费内存的问题,可以使用原型对象实现实例方法共享

解决浪费内存问题的原理:

结论

因此,在构造函数时,将公共属性和方法写入prototype 原型对象

原型对象内,节约内存,实现实例化对象公共属性的共享

例如 扩展数组求和方法:

对象原型

实例对象都会有一个属性proto 指向构造函数的prototype原型对象,之所以我们对象可以使用构造函数prototype原型对象的属性和方法,就是因为对象有proto原型的存在

注意:

proto是JS非标准属性(只读不能赋值)

\[prototype ]和proto意义相同

用来表明当前实例对象指向哪个原型对象prototype

即:对象原型指向原型对象

原型链

只要是实例化对象就有proto 它指向该对象的原型对象

普通构造函数的原型对象也是一个对象 也有proto 指向Object构造函数的原型对象

Object构造函数的原型对象也有proto但是它指向null 空

例如:

总的来说:

原型链就是一种查找规则:

1.当访问一个对象的属性或者方法时,首先查找这个对象自身有没有该属性

2.如果没有就查找它的原型

3.如果还没有就查找原型对象的原型

4.以此类推直到查找到Object为止

5.proto对象原型的意义就在于为对象成员查找机制提供一个方向

例如:

map方法就在构造函数Array的原型对象上,声明的普通数组想要使用就需要一层层查找到Array的原型对象上

6.可以使用instanceof运算符用于检测构造函数的prototype属性(原型)是否出现在某个实例对象的原型链上

简单来说就是一个实例对象的原型链上是否可以找到某个构造函数的原型

即 实例对象是否在属于某构造函数

相关推荐
jerryinwuhan8 分钟前
《Python数据预处理》第四章
开发语言·python
长江&后浪10 分钟前
防火墙的描述
开发语言·网络·php
Highcharts.js19 分钟前
数据可视化避坑指南 ——开发中常见图表错误与修复方案
javascript·信息可视化·数据可视化·highcharts·数据可视化避坑·修复方案
观无31 分钟前
若依EasyExcel实现单元格合并
开发语言·前端·javascript
雨晨源码(同名B站)34 分钟前
基于Python的网易云音乐评论数据情感化分析系统 音乐爬虫信息可视化 |SnowNLP评论情感分析
开发语言·hadoop·爬虫·python·信息可视化·毕业设计
我不是疯子是傻子1 小时前
串口通信数据帧粘包拆包再进化:基于 Qt 的滑动窗口与 CRC 校验实战
开发语言·qt
程序员老陆1 小时前
Qt中实现窗口真全屏(覆盖Windows任务栏)
开发语言·windows·qt
愚公搬代码1 小时前
【愚公系列】《Web应用安全》001-VMware的安装
前端·安全
xiaohaiAIgeo1 小时前
【2026年】HG/T 20656-2024化工暖通空调设计规范:新版标准的变化与影响
java·前端·javascript·科普知识
立少→万能汉编1 小时前
用“立少→超文本”写静态网页,标签<倍>
服务器·前端·javascript