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

【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.lryc.cn/news/510559.html

相关文章:

  • 【Golang 面试题】每日 3 题(六)
  • openEuler安装OpenGauss5.0
  • 20241230 机器学习ML -(1)线性回归(scikitlearn)
  • MacOS下TestHubo安装配置指南
  • mysql性能问题排查
  • centos单机部署seata
  • YOLOv9-0.1部分代码阅读笔记-lion.py
  • 运行Zr.Admin项目(前端)
  • HarmonyOS NEXT 实战之元服务:静态多案例效果(一)
  • go下载依赖提示连接失败
  • JS 异步 ( 二、Promise 的用法、手写模拟 Promise )
  • 五分钟学会如何在GitHub上自动化部署个人博客(hugo框架 + stack主题)
  • 【ETCD】【实操篇(十五)】etcd集群成员管理:如何高效地添加、删除与更新节点
  • 灵当CRM uploadfile.php 文件上传致RCE漏洞复现
  • Linux下Java通过JNI调用C++
  • 解决:excel鼠标滚动幅度太大如何调节?
  • Git和SVN有什么区别?
  • 【深度学习基础|pip安装】pip 安装深度学习库常见错误及解决方案,附案例。
  • 【ES6复习笔记】解构赋值(2)
  • Dockerfile的用法
  • Docker 安装mysql ,redis,nacos
  • Axure RP 11 详细保姆级安装教程(附安装包)
  • Java处理视频思路
  • 攻防世界 robots
  • DBeaver 咋手动配置sqlite 驱动
  • RestTemplate关于https的使用详解
  • 消息中间件RabbitMQ和kafka
  • 学习C++:标识符命名规则
  • Bluetooth Spec【0】蓝牙核心架构
  • AppInventor2 ClientSocketAI2Ext 拓展加强版 - 为App提供TCP客户端接入,可发送二进制数据