【ES6】—类与继承

在这里插入图片描述

一、 定义类

class People {constructor (name, age) {this.name = namethis.age = age}showName () {console.log(this.name)}
}
let p1  = new People('xiaoxiao', 30)
console.log(p1)
// People {name: 'xiaoxiao', age: 30}

小节:

  1. 使用class关键字声明类
  2. 使用constructor 构造器声明动态属性
  3. 在类的第一层级声明动态方法

二、 继承类的动态属性和方法

class People {constructor (name, age) {this.name = namethis.age = age}showName () {console.log(this.name)}
}
let p1  = new People('xiaoxiao', 30)
console.log(p1)
// People {name: 'xiaoxiao', age: 30}class Coder extends People {constructor (name, age, company) {super(name, age) // 继承属性this.company = company // 当前类自有属性}showCompany () {console.log(this.company)}
}
let c1 = new Coder('xiaoxiao', 18, '小米')
console.log(c1)
c1.showName()
c1.showCompany()

小节:
继承类的声明: class + 子类名 + extends + 父类名
动态属性接收继承:construtor + super (需要被继承的属性)
动态方法的继承: 根据子类继承父类自动继承
子类调用父类的动态方法: 实例. 方法名

三、顶层属性设置与获取

class People {constructor (name, age){this.name = namethis.age = agethis._sex = -1 // 0 : 男, 1: 女}get sex () {if (this._sex === 0) {return '男'} else if (this._sex === 1) {return '女'} else {return 'error'}}set sex (value) {if (value === 0 || value === 1) {this._sex = value}}
}
let p1 = new People ('xiaoxiao', 18)
p1.sex = 1
console.log(p1.sex)class Coder extends People {constructor (name, age, company) {super(name, age) // 继承属性this.company = company // 当前类自有属性}showCompany () {console.log(this.company)}
}
let c1 = new Coder('张三',20, '腾讯')
c1.sex = 0
console.log(c1.sex)

小节:

  1. 顶层属性通过 中间值声明变量、设置变量、获取变量来实现
  2. 顶层属性和构造函数的属性区别在于,顶层属性可以处理业务逻辑,并在类里面的第一层; 构造函数属性无法处理业务逻辑,并在构造器里面的第一层
  3. 顶层属性会自动被子类继承,构造函数的属性,需要手动使用super 关键字接收继承

四、静态方法和静态属性

1.静态方法

class People {constuctor (name, age) {this.name = namethis.age = age}static say () {return '你好'}
}
let p1 = new People ('xiaoxiao', 18)
console.log(People.say())
// 你好
class Coder extends People {constructor (name, age, company) {super(name, age) // 继承属性this.company = company // 当前类自有属性}showCompany () {console.log(this.company)}
}
console.log(Coder.say())
// 你好

小节:
静态方法声明:再类第一个层级使用static关键字声明
静态方法调用:使用类名.方法名 调用
子类自动继承父类的静态方法,使用子类名.方法名调用

2. 静态属性

class People {constuctor (name, age) {this.name = namethis.age = age}
}
People.count = 1
console.log('父类静态属性', People.count)
class Coder extends People {constructor (name, age, company) {super(name, age) // 继承属性this.company = company // 当前类自有属性}showCompany () {console.log(this.company)}
}
console.log('子类继承父类的静态属性', Coder.count)

小节:
静态属性声明:类名.属性名 = 值
静态属性调用: 类名.属性名
子类继承父类: class 子类名 extends 父类名
子类调用继承静态属性: 子类.属性名

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

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

相关文章

瓜分双十一10亿红包设计:在线分享教程?

在如今激烈的市场竞争中,瓜分红包营销活动成为了各大企业争相使用的一种营销手段。这种活动不仅能够吸引用户的关注和参与,还能够提高用户的粘性和忠诚度。那么,如何自建瓜分红包营销活动呢?下面将为大家详细解析。 首先&#xff…

Mysql高阶语句 (一)

一、常用查询 (增、删、改、查) 对 MySQL 数据库的查询,除了基本的查询外,有时候需要对查询的结果集进行处理。 例如只取 10 条数据、对查询结果进行排序或分组等等 1、按关键字排序 PS:类比于windows 任务管理器 使用 SELECT 语句…

Ansible自动化运维工具

Ansible自动化运维工具 一、Ansible介绍1.Ansible工具:2.Ansible特点及优势3.Ansible核心程序4.Ansible的工作原理及流程 二、部署ansible自动化1.管理端安装ansible2.ansible 目录结构3.配置主机清单4.配置密钥对验证 三、ansible 命令行模块1.command 模块2.shell…

java八股文面试[多线程]——AQS 详细介绍

线程同步除了Synchronized Volatile ReentranLock 之外,还有其他一些用来进行同步的机制。 AQS 简单介绍 AQS 的全称为(AbstractQueuedSynchronizer),这个类在 java.util.concurrent.locks 包下面。 AQS 是一个用来构建锁和同步器…

开启智能时代:深度解析智能文档分析技术的前沿与应用

开启智能时代:深度解析智能文档分析技术的前沿与应用 本章主要介绍文档分析技术的理论知识,包括背景介绍、算法分类和对应思路。通过本文学习,你可以掌握:1. 版面分析的分类和典型思想 2. 表格识别的分类和典型思想 3. 信息提取的…

SpringMVC概述与简单使用

1.SpringMVC简介 SpringMVC也叫做Spring web mvc,是 Spring 框架的一部分,是在 Spring3.0 后发布的。 2.SpringMVC优点 1.基于 MVC 架构 基于 MVC 架构,功能分工明确。解耦合, 2.容易理解,上手快;使用简单。 就可以…

1.9 动态解密ShellCode反弹

动态解密执行技术可以对抗杀软的磁盘特征查杀。其原理是将程序代码段中的代码进行加密,然后将加密后的代码回写到原始位置。当程序运行时,将动态解密加密代码,并将解密后的代码回写到原始位置,从而实现内存加载。这种技术可以有效…

WMS中Binder案例

WMS中Binder案例 1、FWK层中AIDL形式1.1 服务端实现Stub1.2 客户端获取proxy 2、紧密相关SurfaceFlinger android12-release 1、FWK层中AIDL形式 Android 接口定义语言 (AIDL)、Android 应用层 到 HAL 层 AIDL形式是Android中binder机制的具体实现。按照规范aidl/hidl文件自动生…

keras深度学习框架通过卷积神经网络cnn实现手写数字识别

昨天通过keras构建简单神经网络实现手写数字识别,结果在最后进行我们自己的手写数字识别的时候,准确率堪忧,只有60%。今天通过卷积神经网络来实现手写数字识别。 构建卷积神经网络和简单神经网络思路类似,只不过这里加入了卷积、池…

JavaWeb 速通Ajax

目录 一、Ajax快速入门 1.基本介绍 : 2.使用原理 : 二、Ajax经典入门案例 1.需求 : 2.前端页面实现 : 3. 处理HTTP请求的servlet实现 4.引入jar包及druid配置文件、工具类 : 5.Domain层实现 : 6.DAO层实现 : 7.Service层实现 : 8.运行测试 : 三、JQuery操作Ajax 1 …

Android studio实现圆形进度条

参考博客 效果图 MainActivity import androidx.appcompat.app.AppCompatActivity; import android.graphics.Color; import android.os.Bundle; import android.widget.TextView;import java.util.Timer; import java.util.TimerTask;public class MainActivity extends App…

OpenCV之filter2D函数

函数原型: CV_EXPORTS_W void filter2D(InputArray src,OutputArray dst,int ddepth,InputArray kernel,Point anchorPoint(-1,-1),double delta0,int borderTypeBORDER_DEFAULT); src: 原图像; dst:输出图像 ,和输入的图像具有…

Android RecyclerView 之 吸顶效果

前言 上一篇文章已经实现了列表跟宫格布局的动态切换,这篇文章主要来说通过 CoordinatorLayout 和 AppbarLayout 的配合,以及 NestedScrollView 来实现吸顶效果 。效果如下。 一、CoordinatorLayout 是什么? CoordinatorLayout 是 Androi…

javaee之黑马乐优商城1

问题1:整体的项目架构与技术选型 技术选型 开发环境 域名测试 如何把项目起来,以及每一个目录结构大概是什么样子 通过webpack去启动了有个项目,这里还是热部署,文件改动,内容就会改动 Dev这个命令会生成一个本地循环…

Metasploit“MSF”连接postgresql时因排序规则版本不匹配导致无法连接

一、问题 更新Kali之后使用Metasploit时出现一个问题,连接postgresql时因排序规则版本不匹配导致无法连接 警告: database "msf" has a collation version mismatch DETAIL: The database was created using collation version 2.36, but the operati…

Web_单一视频文件mp4转换为m3u分段ts文件实现边下边播

一、下载ffmpeg: Builds - CODEX FFMPEG @ gyan.dev 二、转换视频文件: 先解压缩,会看到如下结构: 进入bin目录,把需要转换的视频文件复制过来,同时新建一个文件夹用来存放转换后的文件,然后按住Shift键同时单击鼠标右键,选择打开Powershell窗口: 输入以下命令(根据…

干货!耽误你1分钟,教你怎么查自己的流量卡是什么卡?

很多朋友都想购买一张正规的号卡,但是在网上一搜流量卡,五花八门,各式各样,那么,我们该如何辨别流量卡呢。 ​ 从种类上来看,网上的流量卡一共分为两种:号卡和物联卡 物联卡不用多说&#xff0…

无涯教程-Android - Linear Layout函数

Android LinearLayout是一个视图组,该视图组将垂直或水平的所有子级对齐。 Linear Layout - 属性 以下是LinearLayout特有的重要属性- Sr.NoAttribute & 描述1 android:id 这是唯一标识布局的ID。 2 android:baselineAligned 此值必须是布尔值,为…

【OpenCV入门】第三部分——绘制图形与文字

文章结构 线段的绘制矩形的绘制圆形的绘制多边形的绘制文字的绘制文字的斜体效果文字的垂直镜像效果在图像上绘制文字 动态绘制图形 线段的绘制 使用 line() 方法可绘制长短不一的、粗细各异的、五颜六色的线段。 img cv2.line(img,pt1,pt2,color,thickness)img:…

Spring MVC: 请求参数的获取

Spring MVC 前言通过 RequestParam 注解获取请求参数RequestParam用法 通过 ServletAPI 获取请求参数通过实体类对象获取请求参数附 前言 在 Spring MVC 介绍中,谈到前端控制器 DispatcherServlet 接收客户端请求,依据处理器映射 HandlerMapping 配置调…