ES6-Class类

news2024/12/22 19:52:58
ES6 提供了更接近传统语言的写法,引入了 Class (类)这个概念,作为对
象的模板。通过 class 关键字,可以定义类。基本上, ES6 class 可以看作只是
一个语法糖,它的绝大部分功能, ES5 都可以做到,新的 class 写法只是让对象
原型的写法更加清晰、更像面向对象编程的语法而已。
知识点:
1) class 声明类
2) constructor 定义构造函数初始化
3) extends 继承父类
4) super 调用父级构造方法
5) static 定义静态方法和属性
6) 父类方法可以重写

一、ES5里类的写法

function Phone(brand,price){
            this.brand = brand;
            this.price = price;
        }

        //添加方法
        Phone.prototype.call = function(){
            console.log("我可以打电话");
        }

        //实例化对象
        let HuaWei = new Phone('华为',5999);
        HuaWei.call();
        console.log(HuaWei);

 

二、ES6里类的写法

     class Shouji{
            //构造方法,名字不能修改
            constructor(brand,price){
                this.brand = brand;
                this.brand = price;
            }
            //方法必须使用该语法,不能使用ES5的对象完整形式

            call(){
                console.log('我可以打电话11');
            }

        }
        let OnePlus = new Shouji('1+',1999);
        OnePlus.call();

        console.log(OnePlus);

三、静态成员

nokia.name为undefined   Phone.name为手机

说明静态成员属于类不属于实例化对象。

 

四、Class类的继承

 <script>
        class Phone{

            //构造方法
            constructor(brand,price){
                this.brand = brand;
                this.price = price;
            }

            //父类的成员属性
            call(){
                console.log("我可以打电话");
            }
        }

        class SmartPhone extends Phone{

            //构造方法
            constructor(brand,price,color,size){
                super(brand,price);
                this.color=color;
                this.size=size;
            }

            photo(){
                console.log("我可以拍照");
            }
        }

    const xiaomi = new SmartPhone('小米',2999,"黑色",5.7);
    console.log(xiaomi.call()); 
    console.log(xiaomi.photo());
   console.log(xiaomi.price);

    
    </script>

子类对父类方法的重写,直接在写一个同名方法就可以。

五、Class类的set,get方法

 

 get方法可以用在动态变化的属性,例如求平均值。

set方法可以用在类似输入数值检测的场景。

六、数值拓展

  二进制和八进制
ES6 提供了二进制和八进制数值的新的写法,分别用前缀 0b 0o 表示。
Number.isFinite() Number.isNaN()
Number.isFinite() 用来检查一个数值是否为有限的
Number.isNaN() 用来检查一个值是否为 NaN
 
Number.parseInt() Number.parseFloat()
ES6 将全局方法 parseInt parseFloat ,移植到 Number 对象上面,使用不变。
Math.trunc
用于去除一个数的小数部分,返回整数部分。 18
Number.isInteger
Number.isInteger() 用来判断一个数值是否为整数

 Number.EPSILON 是JavaScript表示的最小精度

 EPSILON 属性的值接近于 2.220446049250313e-16。

 用来比较两个浮点数的大小
 

        function equal(a,b){

            if(Math.abs(a-b)<Number.EPSILON){

                return true;

            }else{

                return false;

            }

        }


        console.log(equal(0.1+0.2,0.3));

 

七、对象的拓展

ES6 新增了一些 Object 对象的方法
1) Object.is 比较两个值是否严格相等,与『 === 』行为基本一致( +0 NaN
2) Object.assign 对象的合并,将源对象的所有可枚举属性,复制到目标对象

 

3) __proto__ setPrototypeOf setPrototypeOf 可以直接设置对象的原型

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

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

相关文章

低代码开发重要工具:jvs-logic逻辑引擎的循环处理配置

循环操作是我们常常所见的业务处理方式&#xff0c;那么我们需要如何配置循环操作呢&#xff0c;我们接下来先看个简单的例子&#xff0c; 如下图所示&#xff0c;在一个列表页上&#xff0c;有个表级按钮&#xff0c;这个按钮是将本列表页的所有 “数量” 都 1 配置的思路通…

PostgreSQL+repmgr高可用部署

REPMGR 是一套在PostgreSQL服务器集群中用于管理复制和故障转移的开源工具 。它支持并增强了PostgreSQL的 内置流式复制&#xff0c;提供单个读/写主服务器 以及一个或多个只读备用数据库&#xff0c;其中包含主数据库的近实时副本服务器的数据库。 它提供了两个主要工具&#…

配电室设备监测怎么办?管理高手都是这样做的!

随着智能电网的不断推进&#xff0c;供配电安全也逐渐进入人们的视野&#xff0c;传统人工巡检的方式与当前智能化配电室的建设显得格格不入。 配电室&#xff0c;作为分配多路低压负荷开关的重要节点&#xff0c;其安全系数不言而喻&#xff0c;在管理和监控方面需要慎之又慎。…

数据结构初阶--链表OJ

目录 前言移除链表元素思路分析代码实现 链表的中间节点思路分析代码实现 反转链表思路分析代码实现 链表分割思路分析代码实现 合并两个有序链表思路分析代码实现 前言 本篇文章将对部分单链表的OJ题进行讲解 移除链表元素 我们先来看题 思路分析 我们可以采用双指针的方…

测试常见概念

文章目录 需求测试用例BUG软件生命周期开发模型scrum测试模型 需求 需求的概念&#xff1a;满足用户期望或正式规定文档(合同、标准、规范)所具有的条件和权能&#xff0c;包含用户需求和软件需求 用户需求&#xff1a;可以简单理解为甲方提出的需求&#xff0c;如果没有甲方&…

java错题总结(19-21页)

链接&#xff1a;关于Java中的ClassLoader下面的哪些描述是错误的_用友笔试题_牛客网 来源&#xff1a;牛客网 B&#xff1a;先讲一下双亲委派机制&#xff0c;简单来说&#xff0c;就是加载一个类的时候&#xff0c;会往上找他的父类加载器&#xff0c;父类加载器找它的父类加…

Netty(1)

Netty 文章目录 Netty1 Netty 基本介绍2 why Netty2.1 原生 NIO 问题2.2 Netty 优点 3 I/O 线程模型3.1 传统阻塞 I/O 模型3.2 Reactor 模式3.2.1 Reactor 模式解决传统 I/O 方案3.2.2 Reactor 模式原理图3.2.3 Reactor 的核心组件3.2.4 单 Readcot 单线程(NIO模型)3.2.5 单 Re…

非科班转码,春招总结!

作者&#xff1a;阿秀 校招八股文学习网站&#xff1a;https://interviewguide.cn 这是阿秀的第「263」篇原创 小伙伴们大家好&#xff0c;我是阿秀。 欢迎今年参加秋招的小伙伴加入阿秀的学习圈&#xff0c;目前已经超过 2300 小伙伴加入&#xff01;去年认真准备和走下来的基…

Twitter 推荐算法底有多牛? 已斩获11.7K star

点击上方“Github中文社区”&#xff0c;关注 看Github&#xff0c;每天提升第070期分享 &#xff0c;作者&#xff1a;Huber | Github中文社区 大家好&#xff0c;我是Huber。 在美国当地时间 3 月 31 日&#xff0c;马斯克履行当初的诺言&#xff0c;他宣布了 Twitter 算法的…

《编程思维与实践》1048.解密字符串

《编程思维与实践》1048.解密字符串 题目 思路 主要到密码是升序的,所以先将每个数字对应的个数求出,之后升序排列输出即可得到结果. 求每个数字(0-9)对应的个数可以考虑每个英文单词中特有的字符(出现单次), zero,one,two,three,four,five,six,seven,eight,nine; 下面提供其中…

系统性能压力测试

系统性能压力测试 一、压力测试 压力测试是给软件不断加压&#xff0c;强制其在极限的情况下运行&#xff0c;观察它可以运行到何种程度&#xff0c;从而发现性能缺陷&#xff0c;是通过搭建与实际环境相似的测试环境&#xff0c;通过测试程序在同一时间内或某一段时间内&…

深度学习—卷积神经网络

卷积神经网络 传统意义上的多层神经网络只有输入层、隐藏层和输出层。其中隐藏层的层数根据需要而定&#xff0c;没有明确的理论推导来说明到底多少层合适。 卷积神经网络CNN&#xff0c;在原来多层神经网络的基础上&#xff0c;加入了更加有效的特征学习部分&#xff0c;具…

人生四维度

人生四维度 不是有钱了就成功&#xff0c;你知道&#xff1b;人生的成功不止一种&#xff0c;你也知道。但成功还有哪种&#xff1f;你知道吗&#xff1f; 如果把人生的体验展开&#xff0c;我们可以得到四个维度&#xff0c;高度、深度、宽度和温度。 财富、权力、影响力 构…

2023年3月股份行GX评测盘点:招商银行稳居榜首,各项指标均居前列

易观&#xff1a;2023 年3月GX评测数据显示&#xff0c;招商银行、平安口袋银行、中信银行位居行业Top 10&#xff0c;浦发银行、兴业银行、光大银行紧跟其后。 股份行APP 用户体验&#xff1a;招商银行以绝对优势稳居第一 2023年3月股份行GX评测结果数据显示&#xff0c;在操作…

VScode代码编辑器官网下载慢问题解决方法-亲测有效

VScode官网下载慢的问题如何解决&#xff1f; 问题描述&#xff1a; VisualStudioCode&#xff08;简称VSCode&#xff09;是Microsoft开发的一款功能强大的代码编辑器&#xff0c;它支持Windows&#xff0c;Linux和macOS等操作系统以及开源代码&#xff0c;因此被很多开发人…

maven从入门到精通 第四章 Maven中依赖的传递、排除、继承、聚合

这里写自定义目录标题 一 maven中依赖的传递1 依赖的传递性2 使用complie范围依赖spring-core3 测试依赖是否被传递4 依赖传递性的意义 二 maven中依赖的排除1 依赖排除概述2 具体操作依赖排除 三 maven中依赖的继承四 maven中依赖的聚合 一 maven中依赖的传递 1 依赖的传递性…

thinkphp+vue+html超市零食品美食推荐系统零食购物商城网站7v281

本系统的开发使获取食品推荐系统信息能够更加方便快捷&#xff0c;同时也使食品推荐系统管理信息变的更加系统化、有序化。系统界面较友好&#xff0c;易于操作 运行环境:phpstudy/wamp/xammp等 开发语言&#xff1a;php 后端框架&#xff1a;Thinkphp5 前端框架&#xff1a;vu…

Linux入门2(常用命令)

Linux入门2 Linux常用命令快捷键基础命令文件查看命令文件编辑命令进程管理命令用户管理命令 Linux常用命令 快捷键 Ctrl Alt T打开终端 Ctrl shift 加号 终端字体放大 ctrl 减号 终端字体缩小 基础命令 sudo su 进入管理员目录 exit 返回到用户目录 ls 当前目录下的文…

数据导向下制造业的生产效率、交易效率提升办法

在智能制造和工业4.0成为趋势的今天&#xff0c;大部分制造业企业&#xff0c;均已在企业内部通过实施PLM系统&#xff08;Product Lifecycle Management&#xff0c;产品生命周期管理系统&#xff09;&#xff0c;实现了对组织内产品研发过程和产品研发数据的管理&#xff0c;…

联发科MT8768核心板 安卓4G核心板智能模块MTK方案主板开发板

MT8768核心板是一款性能优异的芯片板&#xff0c;具有以下特点&#xff1a; 处理器方面&#xff0c;MT8768核心板采用联发科MTK8768平台&#xff0c;搭载八核A53处理器&#xff0c;最高主频可达2.3GHz&#xff0c;为您提供出色的运行速度和高效率。 内存和存储方面&#xff0c;…