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

从a类到b类理解原型链

一.一个Student类

  class Student {constructor(name, age) {this.name = name;this.age = age;}learn() {console.log("学习");}}let a1=new Student('王德发',20)console.log(a1);

打印出来的结果:

二.extends继承

    // 老师类class Teacher {constructor(name, age) {this.name = name;this.age = age; //工资}teach() {console.log("教书");}}// 学生类 继承 父类class Student extends Teacher {constructor(name, salary) {super(name);this.salary = salary; //工资}learn() {console.log("学习");}}// 创建一个学生的实例化对象var student1 = new Student("吕德华", 3000);// 打印这个实例化对象console.log(student1);

打印的结果:

三.访问的过程

__proto__作为存取器属性,在内部指向 [ [Prototype]],不过 [ [Prototype]]是不能在代码中直接访问的,只能通过__proto__访问

四.总结

所有的 JavaScript 对象都会从一个 prototype(原型对象)中继承属性和方法。

上述案例我们访问tach方法。

可以访问

为什么能访问?

这里可以理解为:

Student类继承了Teacher这个类,所以能够访问,但是以什么方式进行传递的呢?

1.首选查找自己类上有没有teach这个方法,没有。

2.查他的上上一级类,也就是继承的类Teacher这个类。

那么以什么方式进行查找的呢?

Student这个类上的prototype属性,也是一个对象,那么在他的基础上加上一层prototype(原型对象)

来实现方法的传递。

相关文章:

  • Python开发GUI常用库PyQt6和PySide6介绍之三:交互和通信方式讲解
  • 第八章 创建Callout Library - ZFentry 链接选项
  • Spring DefaultListableBeanFactory源码分析
  • mvtec3d
  • [架构之路-265]:目标系统 - 设计方法 - 软件工程 - 软件设计 - 如何做好详细设计
  • D9741 PWM控制器电路,定时闩锁、短路保护电路,输出基准电压(2.5V) 采用SOP16封装
  • 【UE5.1】程序化生成Nanite植被
  • 实战10 角色管理
  • redis 从0到1完整学习 (八):QuickList 数据结构
  • Android画布Canvas drawPath绘制跟随手指移动的圆,Kotlin
  • Springcloud Alibaba 使用Canal将MySql数据实时同步到Elasticsearch
  • Git三种方法从远程仓库拉取指定分支
  • Leetcode 2971. Find Polygon With the Largest Perimeter
  • C#实现串口通讯
  • Unity Shader 实现X光效果
  • CAP 一致性协议及应用解析
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • ECS应用管理最佳实践
  • es6要点
  • ES6语法详解(一)
  • java8 Stream Pipelines 浅析
  • javascript面向对象之创建对象
  • JavaScript设计模式之工厂模式
  • Java面向对象及其三大特征
  • Netty 4.1 源代码学习:线程模型
  • nodejs实现webservice问题总结
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 一个完整Java Web项目背后的密码
  • ​ 全球云科技基础设施:亚马逊云科技的海外服务器网络如何演进
  • #Linux(帮助手册)
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • (+4)2.2UML建模图
  • (2015)JS ES6 必知的十个 特性
  • (rabbitmq的高级特性)消息可靠性
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (附源码)ssm航空客运订票系统 毕业设计 141612
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (九)c52学习之旅-定时器
  • (十八)devops持续集成开发——使用docker安装部署jenkins流水线服务
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • .mysql secret在哪_MySQL如何使用索引
  • .Net Framework 4.x 程序到底运行在哪个 CLR 版本之上
  • .Net Memory Profiler的使用举例
  • .NET MVC 验证码
  • .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append)
  • .NET高级面试指南专题十一【 设计模式介绍,为什么要用设计模式】
  • .Net接口调试与案例
  • .net企业级架构实战之7——Spring.net整合Asp.net mvc
  • .pop ----remove 删除
  • :=