ES6的面向对象编程以及ES6中的类和对象
一、面向对象
1、面向对象
(1)是一种开发思想,并不是具体的一种技术
(2)一切事物均为对象,在项目中主要是对象的分工协作
2、对象的特征
(1)对象是属性和行为的结合体
(2)属性:体现对象的静态特征、
(3)行为:体现对象的动态特征(具体体现为函数/方法)
3、面向对象的三大特征
(1)封装性:对象时属性和行为的封装体
(2)继承性:在基类(父类)中已经定义的属性或行为,子类可以继承使用
(3)多态性:同一个信息传递给不同的对象呈现的效果也是不同的
二、ES6中的类和对象
1、类:在ES6中引入类的概念,使用class关键字进行定义
class 类名{
属性
方法
}
2、ES6中类和对象的关系
(1)类是对象的抽象:类抽取了对象的公共部分
(2)对象是类的实例化:对象是类的具体实例
3、ES6中类的构造函数
使用constructor作为类的构造函数,用于初始化对象。在定义类的时候若没有显式的定义constructor,js会自动生成一个无参的构造函数(constructor(){})
class Student{constructor(id,name,age,sex){ //constructor用来初始化对象的属性this.id = id,this.name = name,this.age = age,this.sex = sex}show(){console.log(`学号:${this.id} 姓名:${this.name} 年龄:${this.age} 性别:${this.sex}`);}
}
let stu1 = new Student('001','小王',20,'男');
console.log(stu1);
stu1.show();

注:通过类创建对象,new 类名([参数])
(1)创建对象时不能显式调用constructor,在new 类名()创建对象时,默认调用了constructor
(2)在定义类时若没有写constructor,则js会自动生成无参的constructor
三、ES6中类的继承
1、基类:被继承的类,也可称为父类或超类
2、子类:由基类派生的类,又称为派生类
3、继承的用法:通过extends关键字实现
class 父类名{
构造方法
普通方法
}
class 子类名 extends 父类名{
构造方法
普通方法
}
4、super关键字:代表是父类,在类的继承过程中访问父类的构造函数、普通函数
class Father{constructor(name,sex){this.name= name,this.sex = sex}display(){console.log(`姓名:${this.name} 性别:${this.sex}`);}
}class Son extends Father{constructor(name,sex,address,phone){super(name,sex),this.address = address,this.phone = phone}show(){console.log(`姓名:${this.name} 性别:${this.sex} 地址:${this.address} 电话:${this.phone}`);}
}let son1 = new Son('小黑','男','西安','13198302930')
son1.show();

5、子类的普通方法与父类的普通方法同名时,子类方法覆盖父类的方法
类中的普通方法又称为实例方法或成员方法
class Animal{eat(food){console.log(`${food}`);}sleep(){console.log('在睡觉');}}class Rabbit extends Animal{eat(){super.eat('兔子吃草')}}class Tiger extends Animal{eat(){super.eat('老虎吃肉')}}let rabbit = new Rabbit()rabbit.eat();rabbit.sleep();let tiger = new Tiger();tiger.eat();tiger.sleep();

相关文章:
ES6的面向对象编程以及ES6中的类和对象
一、面向对象 1、面向对象 (1)是一种开发思想,并不是具体的一种技术 (2)一切事物均为对象,在项目中主要是对象的分工协作 2、对象的特征 (1)对象是属性和行为的结合体 &#x…...
ConfigMaps in K8s
摘要 ConfigMaps是Kubernetes(K8s)中用于存储应用程序配置信息的一种资源对象。它将key-value对存储为Kubernetes集群中的一个资源,并可以在Pod中以卷或环境变量的形式使用。 ConfigMaps的设计目的是将应用程序配置与应用程序本身解耦。它可…...
《机器人学一(Robotics(1))》_台大林沛群 第 6 周 【轨迹规划_直线转折处抛物线平滑】Quiz 6
步骤: 1、 编程 将PPT 的例子 跑一遍, 确保代码无误 2、根据题目 修改 相关参数 文章目录 求解代码_Python 解决的问题: 线段间转折点 的 速度 不连续 解决方法: 将直线段 两端 修正为 二次方程式 二次项圆滑 求解代码_Python …...
关于vscode的GitLens插件里的FILE HISTORY理解
最近在用vscode的GitLens插件开发项目遇到这个疑问,先看图: 每当我点击FILE HISTORY 一个commit时,正常来说显示器会自动将点击的提交版本和它上一个提交版本进行比较,如果单纯这么理解的话就错了,因为GitLens的File …...
通过idea实现springboot集成mybatys
概述 使用springboot 集成 mybatys后,通过http请求接口,使得通过http请求可以直接直接操作数据库; 完成后端功能框架;前端是准备上小程序,调用https的请求接口用。简单实现后端框架; 详细 springboot 集…...
力扣(LeetCode)算法_C++——移位字符串分组
给定一个字符串,对该字符串可以进行 “移位” 的操作,也就是将字符串中每个字母都变为其在字母表中后续的字母,比如:“abc” -> “bcd”。这样,我们可以持续进行 “移位” 操作,从而生成如下移位序列&am…...
Vue2 与Vue3的区别?面试题
Vue 2和Vue 3是Vue.js框架的不同版本,在面试中经常涉及到它们之间的区别。以下是Vue 2和Vue 3的主要区别: 性能提升:Vue 3在性能方面进行了优化。Vue 3引入了更高效的Diff算法,提高了渲染性能。此外,Vue 3还进行了代码…...
java代码:Random和Scanner应用的小例子-猜数字小游戏
//java代码:Random和Scanner应用的小例子-猜数字小游戏 package com.test; import java.util.Random; import java.util.Scanner; /* * 需求:猜数字小游戏。 * 系统产生一个1-100之间的随机数,请猜出这个数据是多少? * * 分析…...
python调用git出错:ImportError: Failed to initialize: Bad git executable.
报错信息 #报错信息 Traceback (most recent call last): File “”, line 1, in File “C:\Python27\lib\site-packages\git_init_.py”, line 85, in raise ImportError(‘Failed to initialize: {0}’.format(exc)) ImportError: Failed to initialize: Bad git executab…...
【C语言】入门——指针
目录 编辑 1.指针是什么 2.指针类型和指针运算 2.1指针-整数 2.2指针-指针 2.3指针的关系运算 3.野指针 3.1野指针成因 👍指针未初始化: 👍指针越界访问: 👍指针指向空间释放: 3.2如何规避野指针 …...
C#_预处理指令
1. 预处理器指令指导编译器在实际编译开始之前对信息进行预处理。 所有的预处理器指令都是以 # 开始。且在一行上,只有空白字符可以出现在预处理器指令之前。预处理器指令不是语句,所以它们不以分号(;)结束。 C# 编译器没有一个单…...
容器命令(docker)
文章目录 前言一、docker容器命令0、准备工作1、新建容器并启动2、退出容器3、列出所有的运行的容器4、删除容器5、启动和停止容器的操作 总结 前言 本文主要介绍docker中与容器相关的一些命令,是对狂神课程的一些总结,作为一个手册帮助博主和使用docke…...
Vue3 ElementPlus el-cascader级联选择器动态加载数据
参考了这位的大佬的写法 element el-cascader动态加载数据 (多级联动,落地实现)_el-cascader 动态加载_林邵晨的博客-CSDN博客 <el-cascader style"width: 300px" :props"address" v-model"addressValue" …...
leetcode分类刷题:栈(Stack)(一、字符串相邻元素删除类型)
1、在leetcode分类刷题:基于数组的双指针(一、基于元素移除的O(1)类型)题目中,采用双指针之快慢指针的算法来解决。 2、字符串相邻元素的删除问题,用栈来进行管理,会非常有效;这种题型排在后面的…...
你还在找淘宝商品信息查询的接口吗?
你还在找淘宝商品信息查询的接口吗?,不用找了,我这有,免费测试 在很多行业,比如淘客、商品采集、刊登、数据分析行业都需要用到相关的商品接口,但是官方一般又没有开放这些接口,怎么办ÿ…...
dll修复精灵,dll修复工具下载方法分享,mfc140u.dll缺失损坏一键修复
今天,我将为大家分享一个关于mfc140u.dll的问题。首先,我想问一下在座的网友们,有多少人知道mfc140u.dll是什么?又有多少人知道它的作用以及如何解决这个问题呢?在接下来的演讲中,我将详细介绍mfc140u.dll的…...
[LINUX使用] iptables tcpdump
iptables: 收到来自 10.10.10.10 的数据后都丢弃 iptables -I INPUT -s 10.10.10.10 -j DROP 直接 reject 来自 10.10.10.* 网段的数据 iptables -I INPUT -s 10.10.10.0/24 -j REJECT tcpdump: dump eth0的数据到本地 tcpdump -i eth0 -w dump.pcap 只抓 目的地址是 10…...
百度文心一率先言向全社会开放 应用商店搜“文心一言”可直接下载
8月31日,文心一言率先向全社会全面开放。广大用户可以在应用商店下载“文心一言APP”或登陆“文心一言官网”(https://yiyan.baidu.com) 体验。同时,企业用户可以直接登录百度智能云千帆大模型平台官网,调用文心一言能…...
【100天精通Python】Day56:Python 数据分析_Pandas数据清洗和处理
目录 数据清洗和处理 1.处理缺失值 1.1 删除缺失值: 1.2 填充缺失值: 1.3 插值: 2 数据类型转换 2.1 数据类型转换 2.2 日期和时间的转换: 2.3 分类数据的转换: 2.4 自定义数据类型的转换: 3 数…...
【vue】使用无障碍工具条(详细)
引入:使用的是太阳湾的无障碍工具条,代码地址:https://gitee.com/tywAmblyopia/ToolsUI 具体步骤:下载代码后,将其中的 canyou 文件夹拖入 vue 项目中的 public 文件夹中; 上图是在项目目录中的样子&#…...
Linux系统信息查询全攻略:从内核到发行版的深度解析与脚本实践
1. 项目概述:一个看似简单却暗藏玄机的基础操作“查看Linux系统版本”,这几乎是每个运维工程师、开发人员乃至普通用户在接触Linux系统时,第一个需要掌握的命令。它简单到常常被新手教程一笔带过,却又复杂到足以让老手在排查问题时…...
py每日spider案例之某website之xin东方选课搜索接口(难度一般 扣取代码即可)
加密位置: 逆向接口参数: 逆向接口: const g = globalThis; g.window = g; g.self = g; g.location = {<...
基于CircuitPython的电机动态性能测试系统:从原理到实践
1. 项目概述与核心价值搞电机驱动,最怕的就是“凭感觉”。你手上有个直流有刷电机,数据手册上写着空载转速12000转,堵转扭矩50mNm,但实际装到你的机器人关节或者小车上,带上传动机构,性能到底怎么样&#x…...
别再头疼了!手把手教你用赫优讯NT151网关搞定FANUC机器人与西门子S7-1500 PLC通讯
工业现场通讯实战:FANUC机器人与西门子S7-1500 PLC跨协议高效对接指南 当FANUC机器人的EtherNet/IP网络需要与西门子S7-1500的PROFINET系统握手时,现场工程师往往会面临协议壁垒带来的调试噩梦。去年在某新能源汽车电池产线项目中,我们团队用…...
Linux网络运维实战:从ifconfig、ethtool到网络状态深度诊断
1. 从ifconfig开始:你的网络诊断第一课 刚接手一台Linux服务器时,我习惯性敲下的第一个命令永远是ifconfig。这个看似简单的命令就像汽车仪表盘,能快速告诉你当前网络接口的基本状态。记得有次凌晨处理线上故障,就是通过ifconfig…...
终极指南:如何用Chrome Markdown阅读器完美阅读本地Markdown文件
终极指南:如何用Chrome Markdown阅读器完美阅读本地Markdown文件 【免费下载链接】markdownReader markdownReader is a extention for chrome, used for reading markdown file. 项目地址: https://gitcode.com/gh_mirrors/ma/markdownReader 你是否曾经在C…...
BLE GATT客户端开发实战:从服务发现到数据解析
1. 项目概述与核心概念解析在物联网和可穿戴设备领域,蓝牙低功耗(BLE)技术因其低功耗和标准化协议栈,已成为短距离无线通信的首选方案。其核心通信模型基于GATT(通用属性配置文件),这是一种结构…...
手把手教你模拟登录淘宝并爬取订单数据:从Cookie维护到反爬突破的完全指南
目录 一、技术选型:为什么最终选择了Playwright? 1.1 那些年被抛弃的方案 1.2 Playwright的优势 1.3 完整的依赖清单 二、登录流程的完整实现 2.1 两种登录方案的权衡 2.2 扫码登录的完整代码 2.3 Cookie持久化机制详解 三、订单列表爬取的两种思路 3.1 方式一:页…...
QQ截图独立版:免费获取专业级屏幕工具集的完整指南
QQ截图独立版:免费获取专业级屏幕工具集的完整指南 【免费下载链接】QQScreenShot 电脑QQ截图工具提取版,支持文字提取、图片识别、截长图、qq录屏。默认截图文件名为ScreenShot日期 项目地址: https://gitcode.com/gh_mirrors/qq/QQScreenShot 还在为寻找功…...
手把手教你用STC89C52单片机驱动DS1302时钟模块(附完整代码)
STC89C52与DS1302时钟模块实战指南:从硬件搭建到代码实现 1. 项目概述与硬件准备 在嵌入式系统开发中,实时时钟(RTC)功能是许多项目的核心需求。STC89C52作为经典的51系列单片机,与DS1302时钟模块的组合,为开发者提供了经济实惠且…...
