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

【ES6复习笔记】Class类(15)

介绍

ES6 提供了更接近传统语言的写法,引入了 Class(类)这个概念,作为对象的模板。通过 class 关键字,可以定义类。基本上,ES6 的 class 可以看作只是一个语法糖,它的绝大部分功能,ES5 都可以做到,新的 class 写法只是让对象原型的写法更加清晰、更像面向对象编程的语法而已。

class shouji {
    constructor(brand,price) {
        this.brand=brand;
        this.price=price
    }

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

let A = new shouji('1+',1999);
console.log(A)

知识点:

  1. class 声明类
  2. constructor 定义构造函数初始化
  3. extends 继承父类
  4. super 调用父级构造方法
  5. static 定义静态方法和属性
  6. 父类方法可以重写

静态成员

class Person{
    static name='手机'
}
let nokia = new Person();
console.log(nokia.name);

构造函数继承

function Phone(brand,price){
    this.brand=brand;
    this.price=price;
}
Phone.prototype.call=function (){
    console.log("我可以打电话");
}
function SmartPhone(brand,price,color,size){
    Phone.call(this,brand,price);
    this.color=color;
    this.size=size;
}

//设置子级构造函数原型
SmartPhone.prototype=new Phone;
SmartPhone.prototype.constructor=SmartPhone;

//声明子类方法
SmartPhone.prototype.photo = function (){
    console.log('我可以玩游戏');
}
const chuizi = new SmartPhone('锤子',2499,'黑色','5.5inch')
console.log(chuizi);

Class 的类继承

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('拍照');
    }

    playGame(){
        console.log('打游戏');
    }
}
const xiaomi=new SmartPhone('小米',1999,'黑色','4.7inch')
xiaomi.call();
xiaomi.photo();
xiaomi.playGame();

子类对父类方法的重写

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('拍照');
    }

    playGame(){
        console.log('打游戏');
    }

    //重写!
    call(){
        console.log('我可以进行视频通话')
    }
}
const xiaomi=new SmartPhone('小米',1999,'黑色','4.7inch')
xiaomi.call();
xiaomi.photo();
xiaomi.playGame();

get 和 set 设置

class Phone{
    get price(){
        console.log("价格被读取了")
        return 'I LOVE YOU'
    }

    set price(val){
        console.log('价格被修改了')
        return val;
    }
}

//实例化对象
let s = new Phone();
s.price=12  
// console.log(s.price)   //其实是调用price方法

http://www.kler.cn/a/453374.html

相关文章:

  • 运行Zr.Admin项目(后端)
  • 本原多项式
  • 横向项目三模态融合笔记
  • 产品初探Devops!以及AI如何赋能Devops?
  • Windows下安装Rabbit MQ
  • OAuth 2.0
  • 【解决报错】AttributeError: ‘NoneType‘ object has no attribute ‘group‘
  • Goland 安装与使用
  • 请购单一直提示需求部门不能为空无法提交
  • 深入浅出 MyBatis | Mybatis 简洁、第一个Mybatis程序
  • Flutter开发HarmonyOS 鸿蒙App的好处、能力以及把Flutter项目打包成鸿蒙应用
  • 使用TimesFM 对车辆销售进行预测
  • 【深度学习环境】NVIDIA Driver、Cuda和Pytorch(centos9机器,要用到显示器)
  • 社区版Dify 轻松实现文生图,Dify+LLM+ComfyUI
  • Coroutine 基础三 —— 结构化并发(二)
  • 机器学习之PCA降维
  • 【开发问题记录】使用 Docker+Jenkins+Jenkins + gitee 实现自动化部署前端项目 CI/CD(centos7为例)
  • 优化SEO策略的长尾关键词研究与应用指南
  • Linux电源管理——CPU Hotplug 流程
  • Java中的异常处理机制
  • 力扣——102. 二叉树的层序遍历
  • 青少年科普教学系统平台的设计与实现springboot
  • 零样本图像分类:用Python和CLIP模型轻松实现
  • 【AI系列】从零开始学习大模型GPT (1)- Build a Large Language Model (From Scratch)
  • 2025年湖南省各地市国际、国家、地方、行业、团体标准制定奖励补贴政策
  • TouchGFX 工程的移植步骤(LTDC RGB 接口 LCD)