当前位置: 首页 > news >正文

构造函数的原型原型链

代码示例

// 定义一个构造函数 Test
function Test() {this.name = '张三'
};
//向构造函数的原型添加一个属性 age=18
Test.prototype.age = 18;//使用构造函数 Test 来实例化一个新对象
const test = new Test();//向 Object.prototype 添加了一个名为 sex 的属性,其值为 '男'
Object.prototype.sex = '男';/*** 原型链就是,以一个对象为基准,以__proto__为链接的这条链条,一直到 Object.prototype 为止到这条链叫原型链* * test{*  name: '张三'*  __proto__: Test.prototype{*      age: 18*      __proto__:Object.prototype{*          sex: '男',*          __proto__: null *      }*  }}*/console.log(test.name);//张三
console.log(test.age);//18
console.log(test.sex);//男
console.log(test.dream);//undefined
console.log(Object.prototype.__proto__)// null

代码理解

  1. 定义了一个构造函数Test ,它会在被调用时给新创建的对象添加一个名为name的属性,并将其的值设为“张三”
  2. 向构造函数的原型(Test.prototype)添加一个名为age的属性,值为18。通过 new Test() 创建的实例都会继承这个age属性,除非它们自身覆盖了这个属性。
  3. new Test() 创建了一个新的对象 test,它拥有自己的name 属性,同时也继承了来自Test.prototype age 属性。
  4. 修改了 Object.prototype ,为其添加了一个名为 sex 的属性,其值为 '男'

原型链理解

test 对象的原型链结构。test.__proto__ 指向的是Test.prototype,而 Test.prototype.__proto__ 则指向 Object.prototype。最后Object.prototype.__proto__ null,表示原型链的末端。

综上所述我们可以理解原型链就是:

每个对象都有一个__proto__属性,它指向另一个对象,这个对象称之为对象的原型。当试图访问对象的属性时,javascript 引擎不仅会查找该对象自身拥有的对象,还会沿着__proto__向上查找,直到找到该属性或者到达原型链末端(即null)。即原型链就是,以一个对象为基准,以__proto__为链接的这条链条,一直到 Object.prototype 为止到这条链叫原型链

概念

原型(prototype):是所有由构造函数创建的实例共享的对象,包含了可以被这个实例访问的方法和属性。
__proto__:是对象的内部属性,指向创建它的构造函数的prorotype
原型链 :以对象为基准,以__proto__为链接的这条链条,一直到 Object.prototype 为止到这条链叫原型链。

相关文章:

构造函数的原型原型链

代码示例 // 定义一个构造函数 Test function Test() {this.name 张三 }; //向构造函数的原型添加一个属性 age18 Test.prototype.age 18;//使用构造函数 Test 来实例化一个新对象 const test new Test();//向 Object.prototype 添加了一个名为 sex 的属性,其值…...

nginx反向代理及负载均衡

华子目录 nginx反向代理功能http反向代理反向代理配置参数proxy_pass的注意事项案例:反向代理单台后端服务器案例:反向代理实现动静分离案例:反向代理的缓存功能非缓存场景下测压准备缓存缓存场景下测压验证缓存文件 反向代理负载均衡&#x…...

单片机实物成品-011 火灾监测

火灾监测(20个版本) 版本20: oled显示温湿度烟雾浓度火焰传感器天然气浓度窗户风扇水泵排气系统声光报警语音播报按键WIFI模块 ----------------------------------------------------------------------------- https://www.bilibili.com…...

使用 Docker 在 Alpine Linux 下部署 Caddy 服务器

简介 在现代 web 开发中,选择合适的 web 服务器至关重要。Caddy 是一个功能强大的现代化 HTTP/2 服务器,支持自动 HTTPS,配置简单,适合开发和生产环境。Docker 则为我们提供了一种轻量级的容器化技术,使得应用程序的部…...

每日十题八股-2025年1月12日

1.为什么四次挥手之后要等2MSL? 2.服务端出现大量的timewait有哪些原因? 3.TCP和UDP区别是什么? 4.TCP为什么可靠传输 5.怎么用udp实现http? 6.tcp粘包怎么解决? 7.TCP的拥塞控制介绍一下? 8.描述一下打开百度首页后发生的网络过…...

Python中定位包含特定文本信息的元素

目录 一、为什么需要定位包含文本信息的元素 二、使用Selenium定位包含文本的元素 1. 使用find_element_by_link_text 2. 使用find_element_by_partial_link_text 3. 使用XPath定位包含文本的元素 4. 使用CSS选择器定位包含文本的元素 三、使用BeautifulSoup定位包含文本…...

uniapp实现H5页面内容居中与两边留白,打造类似微信公众号阅读体验

在 UniApp 中,由于需要兼容多端应用,我们通常使用 rpx 作为尺寸单位。然而,在某些情况下,如需要实现内容居中且两边留白时,直接使用 rpx 可能会带来一些限制。这时,我们可以考虑使用 px 或 rem 等单位&…...

极品飞车6里的赛道简介

极品飞车里有很多赛道,赛道分为前向赛道Forward、后向赛道Backward。前向赛道Forward是从A点到B点;后向赛道Backward是前向赛道的逆过程,即从B点到A点。这里介绍极品飞车6的赛道长度、中英文名称翻译、难度等级。 序号赛道英文名赛道中文名总长(km)急弯难度等级1Alpine Trai…...

SAP推出云端ERP解决方案,加速零售行业数字化转型

2025年1月9日,SAP发布了一款专为零售行业设计的云端ERP行业解决方案——S/4HANA Cloud Public Edition,进一步推动企业向云端迁移。这款解决方案旨在集中运营数据,整合财务、采购和商品管理流程,以帮助零售企业优化运营效率。 核…...

Python爬虫进阶——案例:模拟bilibili登录)

主要内容:模拟bilibili账号密码登录,不要实现的的实现功能是单击登录按钮,切换登录方式, 输入账号和密码,然后完成图片点击验证,最后单击立即登录按钮。 1、第一步:通过selenium模块访问bilibi…...

什么是数据分析?

什么是数据分析? 数据分析(Data Analysis)是指通过对数据进行收集、整理、处理、建模和解读,以揭示数据中的有用信息、支持决策和解决实际问题的过程。它是一门将数据转化为知识的学科,广泛应用于商业、科学研究、医疗…...

基于springboot的课程作业管理系统源码(springboot+vue+mysql)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的课程作业管理系统。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 可以管理首页、个人中心…...

多线程之旅:属性及其基本操作

上次分享到了,多线程中是是如何创建的,那么接下来,小编继续分享下多线程的相关知识。 多线程中的一些基本属性。 基本属性 属性获取方法IDgetId()名称getName()状态getState()优先级getPriority()是否后台线程isDemo()是否存活isAlive()是…...

数据表中的数据插入、更新和删除

文章目录 一、表的插入二、更新表中的数据记录三、删除表中的数据记录 一、表的插入 插入数据记录是常见的数据操作,可以显示向表中增加的新的数据记录。在MySQL中可以通过“INSERT INTO”语句来实现插入数据记录,该SQL语句可以通过如下4种方式使用&…...

Q_OBJECT宏报错的问题

在Qt中继承QObject,并且加上Q_OBJECT宏,有时候会报错,比如我的错误: error: debug/httpmgr.o:httpmgr.cpp:(.rdata$.refptr._ZTV7HttpMgr[.refptr._ZTV7HttpMgr]0x0): undefined reference to vtable for HttpMgr 意思是没有虚…...

提升性能300ms:深入解析Spring多表联接查询优化与SQL调优实战

优化所需知识点(必须掌握) 索引篇 explain命令 重点:这是后续分析是否使用索引以及使用是否恰当的工具 作用:查看sql的执行计划,可以看sql语句是否使用了索引,索引的使用情况,以及sql的性能。 …...

增量导入和全量导入的区别是什么?

定义 全量导入:是指将数据源中的所有数据一次性全部导入到目标系统中。例如,一个电商公司要将其旧数据库中的所有商品信息(包括商品名称、价格、库存等)全部迁移到新的数据库系统中,这个过程就是全量导入。这种方式会覆…...

【百度智能云客悦智能客服】搭建AI agent智能对话 - 购车推荐

前期准备 平台链接:https://keyue.cloud.baidu.com/ 一、开始创建 二、会话流程配置 我们以购车推荐的案例,来进行 AI agent 配置演示 1.添加开场白 在 起始主题 画布中,我们可以配置 AI agent 的开场白,画布左侧默认有 开始 …...

【HTML+CSS+JS+VUE】web前端教程-3-标题标签

标题介绍与应用 标题是通过<h1>-<h6>标签进行定义的 <h1>定义最大的标题 <h6>定义最小的标题<h1...

逐笔成交逐笔委托Level2高频数据下载和分析:20250102

level2逐笔成交逐笔委托下载 链接: https://pan.baidu.com/s/1p7OOj5p-QGFrWkt6KKoYng?pwd7f4g 提取码: 7f4g Level2逐笔成交逐笔委托数据分享下载 通过Level2逐笔成交和逐笔委托这种每一笔的毫秒级别的数据可以分析出很多有用的点&#xff0c;包括主力意图&#xff0c;虚假动…...

SEO_快速诊断并解决网站SEO问题的常见方法(164 )

快速诊断网站SEO问题的有效方法 在当今数字化时代&#xff0c;网站的SEO&#xff08;搜索引擎优化&#xff09;问题不仅关乎网站的流量&#xff0c;更直接影响到业务的发展。对于许多网站来说&#xff0c;SEO问题往往是隐藏在表面现象背后的复杂问题。因此&#xff0c;快速诊断…...

基于vue的高校学生党员发展管理系统[vue]-计算机毕业设计源码+LW文档

摘要&#xff1a;本文旨在设计并实现一个基于Vue框架的高校教师教学质量评价系统。该系统充分利用Vue的组件化、响应式等特性&#xff0c;结合后端技术构建一个高效、易用、交互性强的评价平台。系统涵盖系统用户管理、学生评价管理、教师自评管理以及统计分析管理等多个功能模…...

Docker快速部署Nacos

生成数据目录sudo mkdir -p /app/nacos/logs sudo mkdir -p /app/nacos/data sudo chmod -R 777 /app/nacos生成一个随的 Base64 密钥&#xff1a;openssl rand -base64 32nacos启动命令docker run --name nacos-server \-e MODEstandalone \-v /app/nacos/logs:/home/nacos/lo…...

计算机毕业设计springboot展会门票系统 基于SpringBoot的会展票务数字化服务平台 SpringBoot框架下的博览会入场券预约与核销系统

计算机毕业设计springboot展会门票系统 &#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。随着会展经济的蓬勃发展和数字化转型的深入推进&#xff0c;各类展会活动规模不断扩大&am…...

解锁论文写作新姿势:书匠策AI,你的期刊论文智囊团

在学术的浩瀚海洋中&#xff0c;每一位探索者都渴望拥有一盏明灯&#xff0c;照亮前行的道路。对于广大教育领域的学者、研究生乃至本科生而言&#xff0c;撰写一篇高质量的期刊论文不仅是学术能力的体现&#xff0c;更是通往更高学术殿堂的钥匙。然而&#xff0c;面对繁琐的选…...

从ResNet到ASPP:手把手教你用PyTorch复现DeepLabv3+的Encoder模块(含代码详解)

从ResNet到ASPP&#xff1a;手把手教你用PyTorch复现DeepLabv3的Encoder模块&#xff08;含代码详解&#xff09; 在语义分割领域&#xff0c;DeepLabv3以其出色的性能和清晰的架构设计成为众多研究者和工程师的首选方案。本文将带您深入探索其核心组件——Encoder模块的实现细…...

别再买成品了!手把手教你用立创EDA复刻TP4056充电板,成本不到3块钱

3元自制18650充电器&#xff1a;立创EDA复刻TP4056全流程实战 每次看到抽屉里闲置的18650电池&#xff0c;总想给它们配个充电器&#xff0c;但市面上的成品要么价格虚高&#xff0c;要么功能过剩。作为一个常年折腾电子制作的爱好者&#xff0c;我发现用立创EDA复刻TP4056充电…...

训练自定义游戏,构建Gymnasium训练环境

认识Gymnasium使用stable_baseline3只需要定义好Gymnasium环境&#xff0c;关注训练的奖励机制&#xff0c;将重点放在业务的开发上而不是复杂的算法。Gymnasium提供了几个核心的api&#xff1a;方法功能返回值reset()将环境重置为初始状态&#xff0c;开始新回合。obs, infost…...

改进的樽海鞘群算法在光伏MPPT中的应用探索

改进的樽海鞘群算法 光伏mppt 在原来的基础上引入了将反向学习的思想融入到领导者的更新机制&#xff0c;在搜索最优值的过程中&#xff0c;使得算法拥有更好的全局开发能力和局部开发能力。 追随者更新公式则根据适应度就行了改进&#xff0c;新的位置会更加偏向于适应度较好的…...

深入解析DW_apb_i2c与TMP75的寄存器交互:从配置到温度读取

1. 认识TMP75温度传感器与DW_apb_i2c控制器 TMP75是德州仪器&#xff08;TI&#xff09;推出的一款高精度数字温度传感器&#xff0c;采用I2C接口通信&#xff0c;内置12位ADC&#xff0c;分辨率可达0.0625C。我在多个嵌入式项目中都用过它&#xff0c;实测稳定性相当不错。它的…...