【js原型和原型链】

js原型和原型链

  • 一、构造函数和原型对象中的this
  • 二、原型对象的constructor属性
  • 三、原型链
  • 四、关系图
  • 五、普通函数和函数对象

参考文章链接: link

一、构造函数和原型对象中的this

指向实例对象
在这里插入图片描述

    // 定义构造函数function Star(name,age){this.name = name;this.age = age;console.log(this,'我是构造函数的this')}// 公共的属性或方法Star.prototype.sing=function(){console.log('我是会唱歌的明星')console.log(this,'我是原型对象中的this')}// 创建实例对象const obj=new Star('周深',18)obj.sing()

二、原型对象的constructor属性

默认原型对象的的constructor属性是指向构造函数(找自己的爸爸)的,但是当原型对象需要定义多个公共的方法时,原型对象会重新以赋值的方式进行定义,此时的constructor属性需要自己手动添加

    // 定义构造函数function Star(name,age){this.name = name;this.age = age;}// 公共的属性或方法// 定义多个方法Star.prototype={constructor: Star,sing:function(){console.log('我会唱歌')},dance:function(){console.log('我还会跳舞')}}// 创建实例对象const obj=new Star('单依纯',18)console.log(Star.prototype.constructor)

在这里插入图片描述

三、原型链

    // 定义构造函数function Star(name,age){this.name = name;this.age = age;}// 公共的属性或方法// 定义多个方法Star.prototype={constructor: Star,sing:function(){console.log('我会唱歌')},dance:function(){console.log('我还会跳舞')}}// 通过构造函数创建实例对象const obj=new Star('单依纯',18)// 原型对象和实例对象找爸爸 构造函数console.log(Star.prototype.constructor===obj.constructor)// 构造函数找自己的大儿子 原型对象console.log(Star.prototype)// 实例对象找原型对象 二儿子去找大儿子玩console.log(obj.__proto__)// 判断是不是都在找大儿子console.log(Star.prototype===obj.__proto__)//  原型链 大儿子去找妈妈console.log(Star.prototype.__proto__)// 判断一下是不是顶点object.prototypeconsole.log(Star.prototype.__proto__===Object.prototype)

在这里插入图片描述

四、关系图

在这里插入图片描述

五、普通函数和函数对象

所有Function的实例都是函数对象,其他的都是普通对象,Function实例的实例就是普通对象

所以回过头来我们会发现实例对象只是一个普通对象,obj是没有prototype属性的,而构造函数是一个函数对象,只有函数对象才有prototype这个原型属性
而prototype可以帮助我们定义或者重写一些新的公共方法
Object, Function, Array, String, Number, Boolean, Date 等都是 JS 内置的函数对象。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/410275.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端面试题 webpack的工作流程

一、流程图 二、重要概念 1.entry入口: Webpack 从配置的入口点开始,分析应用程序的依赖关系 2.output出口: 定义了打包后的文件如何输出,包括文件名和输出路径。 3.loader加载器: Webpack 本身只能处理 JavaScr…

Bytebase 2.22.2 - 允许在工作空间为群组分配角色

🚀 新功能 允许在工作空间给群组分配角色。 支持禁用邮箱密码登录,仅允许 SSO 登录的设置项。 新增 Postgres SQL 审核规则:禁止在列上设置会变化的默认值。 🔔 重大变更 下线项目内的变更历史页面;所有变更历史仍可…

uboot环境变量擦除之烧录工具擦除flash mtd0分区

有时会uboot环境变量修改了没有生效,需要擦除整个mtd分区 Erasing at 0x100000 – 100% complete. (1M) uboot给flash的中分区

实体书商城小程序的设计

管理员账户功能包括:系统首页,个人中心,用户管理,小说分类管理,小说信息管理,订单管理,系统管理 微信端账号功能包括:系统首页,小说信息,小说资讯&#xff0…

IGE-LIO:充分利用强度信息克服激光退化场景下的定位精度

更多优质内容,请关注公众号:智驾机器人技术前线 1.论文信息 论文标题:IGE-LIO: Intensity Gradient Enhanced Tightly-Coupled LiDAR-Inertial Odometry 作者:Ziyu Chen, Hui Zhu, Biao Yu, Chunmao Jiang, Chen Hua, Xuhui Fu a…

图新说-调整标绘线面的压盖顺序的两种方法

0.序 图新说作为一个三维可视化汇报工具,在公安消防领域常用于做态势标绘,应急救援方案,安保预案等。 如果撤离路线,或者行进路线【线对象】经过了水源地、危险区等【面对象】。如何确保线对象显示在面对象的上面,不被…

Nginx的核心!!! 负载均衡、反向代理

目录 负载均衡 1.轮询 2.最少连接数 3.IP哈希 4.加权轮询 5.最少时间 6.一致性哈希 反向代理 测试 之前讲过Nginx 的简介和正则表达式,那些都是Nginx较为基础的操作,Nginx 最重要的最核心的功能,当属反向代理和负载均衡了。 负载均…

统一 transformer 与 diffusion !Meta 融合新方法剑指下一代多模态王者

本文引入了 Transfusion,这是一种可以在离散和连续数据上训练多模态模型的方法。 来源丨机器之心 一般来说,多模态生成模型需要能够感知、处理和生成离散元素(如文本或代码)和连续元素(如图像、音频和视频数据&#xf…

【操作系统】实验:文件系统

目录 一、实验目的 二、实验要求 三、实验步骤 四、核心代码 五、记录与处理 六、思考 七、完整报告和成果文件提取链接 一、实验目的 1、掌握文件系统的基本结构和文件系统的管理方法 2、加深对两级文件目录认识和理解 3、对文件操作的系统命令实质内容和执行过程深入…

Python实现等距映射(ISOMAP)降维算法

目录 Python实现等距映射(ISOMAP)降维算法的博客引言ISOMAP算法原理ISOMAP的优势与局限Python实现ISOMAP算法1. 创建ISOMAP类2. 在瑞士卷数据集上应用ISOMAP3. 结果分析 总结运行结果 Python实现等距映射(ISOMAP)降维算法的博客 …

NS2582 同步升压双节锂电池充电管理 IC

1 特性  最大 2A 输出同步开关型升压充电器  升压效率可高达 90% 以上  内置电池短路 / 涓流 / 恒流 / 恒压模式  0.5% 电池恒压模式电压精度  支持 LED 充电状态指示  支持充电电流外部可调  支持输入适配器 DPM 功能  外置 EN 使能…

探索Python的Excel力量:openpyxl库的奥秘

文章目录 探索Python的Excel力量:openpyxl库的奥秘背景:为什么选择openpyxl?库简介:openpyxl是什么?安装指南:如何安装openpyxl?快速上手:五个基本函数实战演练:三个应用…

Adobe Dreamweaver(DW)网页代码编辑器win/mac软件安装下载

一、Adobe DW软件概览 1.1 DW软件简介 Adobe Dreamweaver(简称DW)是一款功能强大的网页代码编辑器,由Adobe公司开发并维护。其全称为“Adobe Dreamweaver”,中文译为“梦想编织者”。DW集网页制作和管理网站于一身,支…

Ubuntu系统使用Docker部署中文版trilium并实现远程编辑笔记

文章目录 前言1. 安装docker与docker-compose2. 启动容器运行镜像3. 本地访问测试4.安装内网穿透5. 创建公网地址6. 创建固定公网地址 前言 今天和大家分享一款在G站获得了26K的强大的开源在线协作笔记软件,Trilium Notes的中文版如何在Linux环境使用docker本地部署…

代码随想录第十九天 | 110.平衡二叉树,257. 二叉树的所有路径,404.左叶子之和,222. 完全二叉树的节点个数

110. 平衡二叉树 第一想法:首先要明确平衡二叉树的定义?左右节点的高度差不超过1?不会概念感觉无法下手... 返回参数返回int,为了标记已经不是平衡二叉树,用-1作标记 int traversal(TreeNode* root){if(rootnullptr) return 0;…

量化需求的业务价值 常见6种方法

量化需求的业务价值可以帮助项目团队更好地理解需求的重要性,并据此做出明智的决策。如果没有明确的量化目标,团队难以做出基于数据的决策,可能导致项目方向模糊,资源分配不当,导致项目进度难以把控,延误交…

平安银行“平安财富杯”高尔夫青少年冠军赛盛大举行,各组冠军精彩角逐实力尽显

今年夏天,巴黎体育盛会聚集了全球目光,中国选手林希妤斩获女子高尔夫球铜牌,追平中国女子高尔夫球历史最佳奥运战绩,让球迷大呼过瘾。奥运会结束后,比赛的热情在中原大地继续上演。8月22日,2024年平安银行“…

Shopify/shopline等独立站paypal快速提现到国内银行卡

做shopify/shopline/shopyy/shoplazza独立站用得最多的收款方式为paypal。 下面介绍如何把paypal里面的资金提现到我们国内银行卡,收款工具是GeeWallet。 1、注册GeeWallet注册入口 2、打开链接,填入手机号或者邮箱,点击立即注册 3、在注册…

【软件使用-MEGA】报错及解决方法

报错1:Error: MEGA has detected duplicate taxa labels. (in line 370) **************************************************************************** ; Please note the following important messages: ; **********************************…

学习之数据库相关概念

数据库相关概念 主流的关系型数据库管理系统: