IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 一文-学会es6的class类 -> 正文阅读

[JavaScript知识库]一文-学会es6的class类

看完文章会收获满满哦!

?一、类的定义和声明

class Person {}  // 类的声明

const Girl = class {}  // 类的表达式

?二、类中的方法

1.构造器方法

?一个类只能有一个构造函数
?通过new关键字操作类时会调用constructor函数,如果不写也会调用默认的constructor

class Person {

  constructor(name, age) {
    this.name = name;
    this.age = age;
  }
}

const p1 = new Person('wyy',22)
console.log(p1)

2.实例方法--通过创建的实例进行访问

class Person {

  constructor(name, age) {
    this.name = name;
    this.age = age;
  }

  // 实例方法
  eating() {
    console.log(this.name, "eating");
  }

}

const p1 = new Person('wyy',22)
p1.eating() // wyy eating

3.访问器方法

?可对类的属性操作进行访问和响应拦截

class Person {

  constructor(name, age) {
    this.name = name;
    this.age = age;
    this._sex = "boy";
  }

  //  类的访问器方法
  get sex() {
    console.log("拦截访问操作");
    return this._sex;
  }
  set sex(newVal) {
    console.log("拦截设置操作");
    this._sex = newVal;
  }

}

const p1 = new Person('wyy',22)
p1.sex = '男'
console.log(p1.sex)

?4.静态方法-通过类名访问

如Promise.all()

class Person {

  constructor(name, age) {
    this.name = name;
    this.age = age;
    this._sex = "boy";
  }

  // 静态方法
  static creatP() {
    console.log("访问了类的静态方法");
  }
}
Person.creatP();

三、类的继承

类的继承使用extends关键字

class Boy {}
class Student extends Boy {}

super:调用父类的构造器函数

注:在子类的构造函数中在使用this之前必须调用父类的构造方法(super)

? ? ? ? 使用位置:子类(派生类)的构造函数,实例方法,静态方法

1.继承父类的属性?

// 类的继承
class Boy {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }

}

class Student extends Boy {
  constructor(name, age, sno) {
    super(name, age); //调用父类的构造函数
    this.sno = sno;
  }
}

const s1 = new Student("hhh", 18, "2339929");
console.log(s1);  

2.继承父类的方法

class Boy {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }

  say() {
    console.log(this.name, "say");
  }

}

class Student extends Boy {
  constructor(name, age, sno) {
    super(name, age); //调用父类的构造函数
    this.sno = sno;
  }

//定义子类内部自己的方法
  study() {
    console.log(this.name, "study");
  }
}

const s1 = new Student("hhh", 18, "2339929");
s1.say(); //方法的继承

3.对父类方法进行重写

如果对父类的方法不满意时,可根据需求进行重写

3.1 完全重写

class Boy {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }

  say() {
    console.log(this.name, "say");
  }

}

class Student extends Boy {
  constructor(name, age, sno) {
    super(name, age); //调用父类的构造函数
    this.sno = sno;
  }

  say() {
    console.log(this.name, "子类重写say");
  }
}

const s1 = new Student("hhh", 18, "2339929");
s1.say(); 

3.2 部分重写-通过super关键字实现

class Boy {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }

  say() {
    console.log(this.name, "say1");
    console.log(this.name, "say2");
    console.log(this.name, "say3");
  }

}

class Student extends Boy {
  constructor(name, age, sno) {
    super(name, age); //调用父类的构造函数
    this.sno = sno;
  }

  say() {
    super.say()
    console.log(this.name, "子类重写say1");
    console.log(this.name, "say2");
  }
}

const s1 = new Student("hhh", 18, "2339929");
s1.say(); 

3.3 对静态方法进行重写

class Boy {

  static sum() {
    console.log("static静态方法");
  }
}

class Student extends Boy {

  //   重写静态方法
  static sum() {
    super.sum();
    console.log("子类的静态方法");
  }
}

Student.sum();

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-07-03 10:40:34  更:2022-07-03 10:42:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/11 9:55:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码