ECMAScript6语法:类

news2024/9/23 19:27:04

在 ES6 中新增了类的概率,多个具有相同属性和方法的对象就可以抽象为类。类和对象的关系如下:

(1)类抽象了对象的公共部分,它泛指某一大类(class)。

(2)对象特指通过类实例化的一个具体的对象。

1、创建类和实例

JavaScript 在它的早期版本就支持类,直到 ES6 引入 class 关键字后才有了自己的语法。构建类可以使用 class 关键字,类体在一对大括号{}中,在大括号{}中可以定义类成员(如方法或构造函数)。

每一个类中包含了一个特殊的方法 constructor(),它是类的构造函数,其作用是对类进行初始化。通过 new 关键字生成对象实例后会自动调用构造函数。如果没有显示定义,在类的内部会自动创建一个 constructor() 构造函数。

在定义类的同时可以在类中添加方法。类中的所有方法不需要写 function 关键字,而且多个方法之间不需要添加分隔符号。

【实例】创建一个名为 Person 的类,在类中使用 constructor() 构造函数,并添加 show() 方法。

//定义类
class Person {
    //构造函数
    constructor(name, blogInfo, blogUrl) {
        this.name = name;
        this.blogInfo = blogInfo;
        this.blogUrl = blogUrl;
    }

    //方法
    show() {
        alert("姓名:" + this.name + "\n博客信息:" + this.blogInfo + "\n博客地址:" + this.blogUrl);
    }
}

//使用 new 关键字来实例化对象
var p = new Person("KevinPan", "您好,欢迎访问 pan_junbiao的博客", "https://blog.csdn.net/pan_junbiao");

//调用类中的方法
p.show();

执行结果:

2、类的继承

类的继承是指子类可以继承父类的一些属性和方法。要实现类的继承,就需要在创建类时使用 extends 关键字。

在定义的子类中需要使用 super() 方法,该方法用于引用父类的构造函数。

【实例】创建父类 Type 和子类 Brand,在子类的构造函数中使用 super() 方法,通过调用子类的 show() 方法输出商品信息。

//定义:父类
class Type {
    //父类构造函数
    constructor(name) {
        this.name = name;
    }

    //父类方法
    showType() {
        return "商品类型:" + this.name;
    }
}

//定义:子类并使用 extends 关键字继承父类
class Brand extends Type {
    //子类构造函数
    constructor(name, bname) {
        //使用 super()方法,引用父类的构造函数
        super(name);
        this.bname = bname;
    }

    //子类方法
    show() {
        return this.showType() + "<br>商品品牌:" + this.bname;
    }
}

//使用 new 关键字来实例化对象
var b = new Brand("手机", "OPPO");

//调用子类中的方法
document.write(b.show());

执行结果:

3、静态成员

在创建类的类体中,在成员前面添加 static 关键字就可以定义静态成员。静态成员只能通过类名进行调用。

【实例】创建一个球类 Ball,在类中定义静态成员,通过类名调用静态成员输出球的信息。

//定义:类
class Ball {
    //静态成员
    static type = "篮球";
    static col = "黄色";

    //静态方法
    static show() {
        return "球的价格:60";
    }
}

//通过类名调用:静态成员、静态方法
document.write("球的类型:" + Ball.type);
document.write("<br>球的颜色:" + Ball.col);
document.write("<br>" + Ball.show());

执行结果:

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

haproxy 7000字配图超详细教程 从小白到入门

简介&#xff1a;HAProxy是一个免费的负载均衡软件&#xff0c;可以运行于大部分主流的Linux操作系统上。HAProxy提供了L4(TCP)和L7(HTTP)两种负载均衡能力&#xff0c;具备丰富的功能。HAProxy的社区非常活跃&#xff0c;版本更新快速,HAProxy具备媲美商用负载均衡器的性能和稳…

基于python理解最大似然MLE-(简单正态分布估计、高斯混合模型GMM)

最大似然法&#xff08;Maximum Likelihood Estimation&#xff0c;简称MLE&#xff09;是一种统计方法&#xff0c;用于估计概率模型的参数。其基本思想是寻找一组参数值&#xff0c;使得在这组参数下&#xff0c;观测数据出现的概率&#xff08;即似然性&#xff09;最大。这…

ARM64 在线仿真器

今天在晚上找到一个简单的ARM64在线仿真器&#xff0c;它非常适合学习ARM64的指令&#xff0c;在教学中应该很好用。网址ARM64 Online Simulatorhttp://163.238.35.161/~zhangs/arm64simulator/ 它是由康涅狄格州立大学的Shuqun Zhang教授开发的。软件基于Alexandro Sanchez开…

评价算法(topsis熵权法)

评价算法 熵权法 上面箭头的一步用到了带权重的距离公式。 上面是某种求权重的方法&#xff0c;合理就行。 但是在使用熵权法的时候&#xff0c;一定要注意用的是规范化矩阵再用熵权法求权重。 规范化之前一定要判断每一列的性质 #熵权法&#xff1a;import xlrd import num…

巴黎奥运会背后的8K国际公用信号制作

北京时间2024年8月12日凌晨3时&#xff0c;举世瞩目的巴黎奥运会闭幕式在法兰西体育场举行&#xff0c;闭幕式演出部分的主题为“记录”。BOSMA博冠首款8K 50P小型化广播级摄像机B1跟随中央广播电视总台“中国红”8K转播车&#xff0c;为田径比赛和闭幕式提供8K国际公用信号制作…

【Ajax使用说明】Ajax、Axios以及跨域

目录 一、原生Ajax 1.1 Ajax简介 1.2 XML简介 1.3 AJAX 的特点 1.3.1 AJAX的优点 1.3.2 AJAX 的缺点 1.4 AJAX 的使用 1.4.1AJAX的基本操作 1.4.2AJAX的传参 1.4.3 AJAX的post请求及设置请求体 1.4.4 AJAX响应json数据 1.4.5 AJAX请求超时与网络异常处理 1.4.5 AJ…

windows 使用Clion开发FreeSWITCH源码

1.准备环境 window安装clion可以编译freeswitch的docker镜像 2.clion配置ssh和Toolchain的配置 去这里看吧 3.makefile配置 Toolchain记得选ssh的 成功之后左下角有这个小锤子&#xff0c;这个小锤子就是生成makefile文件的&#xff0c;记得点击 同时就会出现这个东西 这样…

长文_ZATA

文章目录 环境配置问题miniconda安装torch报错OSError: [WinError 126] 找不到指定的模块。 环境配置问题 miniconda安装torch报错OSError: [WinError 126] 找不到指定的模块。 CSDN 原因&#xff1a;fbegmm.dll文件出现问题 解决方案&#xff1a; 使用依赖分析工具https:/…

SuccBI+低代码文档中心 —数据(数据连接、调度管理)

连接数据 数据加工和分析需要连接已存在的数据&#xff0c;通常是业务系统的数据或文件数据&#xff0c;业务系统数据一般存储在关系型数据库中。对于存储在json文件中的&#xff0c;也可以通过脚本数据加工的方式获取数据。 在数据模块下&#xff0c;点击新建&#xff0c;可以…

【Python机器学习】无监督学习——K-均值聚类算法

聚类是一种无监督的学习&#xff0c;它将相似的对象归到同一簇中&#xff0c;它有点像全自动分类。聚类方法几乎可以应用于所有的对象&#xff0c;簇内的对象越相似&#xff0c;聚类的效果越好。 K-均值聚类算法就是一种典型的聚类算法&#xff0c;之所以称之为K-均值是因为它…

【qt】QMainWindow下实现一个记事本

之前我们学过QWidget&#xff0c;QMainWindow会在ui界面多一个菜单 先实现ui界面 1.添加文本编辑&#xff0c;实现可以写多行 2.将文本编辑放大&#xff0c;拖动即可 3.编辑菜单栏 4.然后我们要实现对应子列表的功能&#xff0c;但是在这里不能转到槽&#xff0c;所以我们…

【Vue3】Pinia store 组合式写法

【Vue3】Pinia store 组合式写法 背景简介开发环境开发步骤及源码 背景 随着年龄的增长&#xff0c;很多曾经烂熟于心的技术原理已被岁月摩擦得愈发模糊起来&#xff0c;技术出身的人总是很难放下一些执念&#xff0c;遂将这些知识整理成文&#xff0c;以纪念曾经努力学习奋斗…

Java EE基础知识点

前言&#x1f440;~ 上一章我们介绍了性能测试工具LoadRunner&#xff0c;今天开启新的篇章Java EE进阶相关的内容 框架 Maven 项目构建 依赖管理 依赖传递 依赖排除 Maven概念 Maven仓库 Maven 设置国内源 创建Spring Boot项目 Web服务器 如果各位对文章的内容感兴…

Flutter 3.24 对普通开发者有哪些影响?

哈喽&#xff0c;我是老刘 Flutter 3.24刚刚发布了。突然觉得时间过得好快。六年前刚开始使用Flutter 1.0的场景还在眼前。 随着Flutter团队老成员的回归和新成员的加入。 前段时间Flutter团队裁员的影响似乎也逐步消退了。 新版本发布的功能逐步回到了该有的状态。 这里盘点…

解决域名加别名后再代理或者映射到fastadmin项目

如果遇到微应用不想再添加或者不方便添加单独的二级域名时&#xff0c;就需要用到代理或者映射来进入到我们的微应用项目中。 可以修改route.php路由文件的下面这个参数 __alias__ > [别名 > 模块/控制器] 如图 然后再修改config.php文件里面的view_replace_str参数…

C++入门基础知识11

C 关键字 下表列出了 C 中的保留字。这些保留字不能作为常量名、变量名或其他标识符名称。 &#xff01;&#xff01;&#xff01;完整关键字介绍 &#xff08;下一篇博文中将详细罗列介绍&#xff09;

内网穿透:打破网络边界的神奇钥匙

在数字化时代&#xff0c;我们每天都在使用各种网络设备&#xff0c;但你是否曾想过&#xff0c;家里的智能摄像头、私人服务器或是游戏主机&#xff0c;如何能够在远离家的地方也能轻松访问&#xff1f; 这就需要涉及到内网穿透技术了。今天&#xff0c;我们就用简单的例子来揭…

coze 工作流使用

什么是工作流 工作流就是将一系列的逻辑节点串起来的流程&#xff0c;例如我们做一个爬虫&#xff0c;第一步先爬取网页内容&#xff0c;第二步数据清洗&#xff0c;得到我们想要的数据&#xff0c;第三步存到数据库。这里每步就是一个逻辑节点&#xff0c;她们之间有先后或是…

如何用不到一分钟的时间将Excel电子表格转换为应用程序

我们大多数人对电子表格又爱又恨。当企业需要分析数据、为决策过程提供信息并可视化信息时&#xff0c;Excel和Google Sheets是首选。这些文档非常容易创建&#xff0c;它们帮助我们以直接的方式构建相关的想法和适用的数据。除此之外&#xff0c;事情可能会变得一团糟。 对于…

服务注册中心--Eureka

一.Eureka概述 Eureka是一个基于REST的服务&#xff0c;主要用于AWS(Amazon Web Services 亚马逊云计算服务)云中的定位服务&#xff0c;以实现中间层服务器的负载平衡和故障转移在 Spring Cloud 微服务架构中通常用作注册中心, 我们称这个服务为 Eureka Server&#xff0c;还…