JavaScript学习-原型和原型链

原型和原型链

  • 示例代码
//创建一个Person类
class Person {constructor(name) {this.name = name;}drink() {console.log('喝水');}
}
//创建一个Teacher类,继承Person
class Teacher extends Person {constructor(name, subject) {super(name);this.subject = subject;}teach() {console.log(`我是${this.name},教${this.subject}.`)}
}const teacher = new Teacher(`小明`,`英语`);
console.log(`teacher`, teacher);
teacher.teach();
teacher.drink();

解释

  • 原型链有显示原型和隐式原型两个概念,如以上代码可以这么理解,
  • Person类是第一个类,因此它里面的所有方法看作显式原型,
  • 然后是Teacher类,继承了Person类,因此Person类里面的显式原型变成了Teacher类里面的隐式原型,
  • 然后嘞,teacher是被Teacher给new出来的,因此Teacher里面的teach()方法就是teacher的隐式原型,而teacher的显式原型是自己的name、subject两个参数。
  • 就比如说上述代码的最后两行的调用,teacher本身没有的就会去隐式原型里面去找,找不到又去上一层找,因此就类似于一条链条,所以叫做原型链,以下图示看起来就类似于指针。
  • 或许换通俗一点的话来说,自己有的就是自己的显示原型,自己没有的,但是可以通过渠道调用别人的就是自己的隐式原型。
  • 那还有一个方法可以验证该属性或者方法是不是自身的,例如输入teacher.hasOwnProperty(‘name’),会返回一个true,而输入teacher.hasOwnProperty(‘teach’),会返回false。
  • 关于图示中的Object,几乎所有的对象都是Object的实例,也就是说他们都继承自Object.prototype,Object.prototype是原型链的顶端,它包含一些基本的方法和属性,所有的对象都可以访问这些方法和属性。呐,因此我们也可以说Object里面的方法是Person类的隐式原型,如下图所示。
  • 图示
    原型和原型链

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

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

相关文章

react 实现页面状态缓存(keep-alive)

前言: 因为 react、vue都是单页面应用,路由跳转时,就会销毁上一个页面的组件。但是有些项目不想被销毁,想保存状态。 比如:h5项目跳转其他页面返回时,页面状态不丢失。设想一个 页面我滑倒了中间&#xf…

Linux(2)——Linux中的Vim编辑器:从入门到精通

Linux中的Vim编辑器:从入门到精通 插播!插播!插播!亲爱的朋友们,我们的Cmake/Makefile/Shell这三个课程上线啦!感兴趣的小伙伴可以去下面的链接学习哦~ 构建工具大师-CSDN程序员研修院 一、Vim的基本概念…

量子网络是什么

量子网络是基于量子力学规律对量子信息进行存储、处理和传输的物理装置,是实现量子通讯和大规模量子计算的基础。清华大学研究团队利用同种离子的双类型量子比特编码,在国际上首次实现无串扰的量子网络节点,对未来实现量子通讯和大规模量子计…

蓝桥杯备战——3.定时器前后台

1.STC15F2k61S2的定时器 阅读STC15系列的手册,我们可以看到跟STC89C52RC的定时器还是有不同之处的: 由上图可以看到我们可以通过AUXR寄存器直接设置定时器的1T/12T模式了 在定时器0/1模式上也可以设置为16位自动重装载。 另外需要注意IAP15F2K61S2只有…

Unity中实现合理塔防寻路机制

前言 在一款TD游戏中,最重要的单位就两大类:防御塔(Tower)和敌人单位(Enemy)。在处理敌人单位的AI行为时,最基本也是最重要的就是自动寻路。在各式TD游戏中,防御塔的攻击方式以及敌人单位的Buff机制往往是能做出差异化的地方;而在寻路问题上,几乎是没有差异的,面对…

Kettle-Docker部署+Sqlserver数据同步Mysql+Start定时任务

一. 背景介绍 1. ETL是什么 ETL(Extract-Transform-Load),即数据抽取、转换、装载的过程。它是一种思想,主要是说,从不同的数据源获取数据,并通过对数据进行处理(格式,协议等转换&a…

unity学习笔记----游戏练习07

一、僵尸攻击和植物的掉血和销毁 当僵尸接触到植物开始攻击时会持续削减植物的血量,当植物血量为零时就销毁当前植物。 在plantManager中, 为植物添加一个血量HP 100, public int HP 100; 在写一个减少血量的方法,来减少血…

NC65中间件能启动,前端客户端启动失败,加载异常,卡住(org.owasp.esapi)

控制台输出错误 ESAPI.properties could not be loaded by any means. Fail.SecurityConfiguration class(org.owasp.esapi.reference.DefaultSecurityConfiguration) CTOR threw exception.效果图: 解决方案 添加如下参数: -Dorg.owasp.esapi.resou…

cocos creator 碰撞系统

设置碰撞组件 3种组件类型,矩形碰撞,圆形碰撞, 多边形碰撞 开启碰撞检测 start() {//开启碰撞管理器let cm cc.director.getCollisionManager()cm.enabled true//绘制碰撞检测边界线。用于调试cm.enabledDebugDraw true//绘制精灵的边界c…

docker 修改默认存储位置

✨✨✨✨✨✨✨ 🎀前言🎁查看前面docker储存位置🎁移动文件位置🎁修改配置文件docker.service🎁修改daemon.json🎁加载配置并重启 🎀前言 最近服务出现系统盘满了,发现其中docker存储占用很大一…

nginx使用stream模块代理端口

今天原本准备将本地金仓的54321端口进行代理的,但是发现代理后总是无法访问。后来突然发现之前使用nginx代理的是一个地址而不是端口。因此做以下笔记用来做记录。 一、stream安装与配置 假设nginx在usr/local/nginx中 1. 测试当前nginx是否有stream模块 ./usr/…

实用工具合集(持续更新...)

一、搜索引擎 1.1、小白盘 网站:https://www.xiaobaipan.com 度盘资源搜索的网站,能够搜索电影、电视剧、小说、音乐等资源(注意:评论区很多小伙伴说小白盘有毒,我用谷歌浏览器搜索过几次并无大碍,请慎用…

wpf控件Expander集合下的像素滚动

项目场景:Expander集合滚动 如下图,有一个Expander集合,且设置 ScrollViewer.VerticalScrollBarVisibility "Auto" 每个Expaner下包含有若干元素,当打开Expader(即IsExpanded "true")时&#…

五分钟教会你如何制作宠物服务小程序

随着宠物市场的不断扩大和人们对宠物健康和幸福的关注度越来越高,宠物服务行业也迅速崛起。作为一名有志于创业的宠物爱好者,搭建一款宠物小程序是一个很好的切入点。本文将为大家介绍使用第三方制作平台乔拓云网搭建宠物小程序的全攻略。 第一步&#x…

1. MySQL 数据库

本章内容 关系型数据库基础 安装 MySQL 管理数据库和表 用户和权限管理 函数,存储过程,触发器和事件 MySQL 架构 存储引擎 服务器选项,系统和状态变量 优化查询和索引管理 锁和事务管理 日志管理 备份还原 MySQL 集群 压力测试…

23111 C++ day3

思维导图 设计一个Per类&#xff0c;类中包含私有成员:姓名、年龄、指针成员身高、体重&#xff0c;再设计一个Stu类&#xff0c;类中包含私有成员:成绩、Per类对象p1&#xff0c;设计这两个类的构造函数、析构函数和拷贝构造函数。 #include <iostream>using namespac…

自学java马上入职怕干不了活怎么办?

自学java马上入职怕干不了活怎么办&#xff1f; 在开始前我分享下我的经历&#xff0c;刚入行时遇到一个好公司和师父&#xff0c;给了我机会&#xff0c;两年时间从3k薪资涨到18k的&#xff0c; 我师父给了一些【java 】学习方法和资料&#xff0c;让我不断提升自己&#…

arcgis实现截图/截屏功能

arcgis实现截图/截屏功能 文章目录 arcgis实现截图/截屏功能前言效果展示相关代码 前言 本篇将使用arcgis实现截图/截屏功能&#xff0c;类似于qq截图 效果展示 相关代码 <!DOCTYPE html> <html> <head><meta charset"utf-8"><meta nam…

OpenCV图像的基本操作

图像的基本操作&#xff08;Python&#xff09; 素材图 P1&#xff1a;die.jpg P2&#xff1a;cool.jpg V&#xff1a;rabbit.mp4&#xff0c; 下载地址 读取展示-图像 import cv2img_1 cv2.imread(./die.jpg) # default cv2.IMREAD_COLOR print("die.jpg shape(imre…

【论文笔记】Learning Deconvolution Network for Semantic Segmentation

重要说明&#xff1a;严格来说&#xff0c;论文所指的反卷积并不是真正的 deconvolution network 。 关于 deconvolution network 的详细介绍&#xff0c;请参考另一篇博客&#xff1a;什么是Deconvolutional Network&#xff1f; 一、参考资料 Learning Deconvolution Netwo…