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知识库 -> React 项目 -ES6 语法类的继承 (10) -> 正文阅读

[JavaScript知识库]React 项目 -ES6 语法类的继承 (10)

在面向对象的编程语言中,基本上都是支持继承的,比如C++,和java,在ES6 中的类也引入的继承的概念,并且和java十分的类似,初学前端的ES6语法,我们在地方就介绍一下ES6 中的继承的语法。

继承

首先继承是类之间的关系。准确说是子类和父类之间的关系。比如我们可以创建类,美国人,中国人,印度人 等等 但是这些不同国家的人,他们也是存在共同点的,比如都属于人这一物种。所以我们可以找到这样继承关系

? ??

?下面我们在ES6 中类中看:

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

?当然这只是两个类,可能还有更多,比如印度人,俄罗斯人,等等那么这些不同国家人我们都要去写那么多吗,显然是太累的了

那么我们不得不去把其中的共同的特征提取出来也就是Person

class Person{
   constructor(name,age){
        this.name=name;
        this.age=age;
     }
}
class American extends Person{
     
}
class Chinese extends Person{
  
}

我们看继承的语法结构啊

class subClassName extends pClassName{

}

subClassName 表示子类的名称

pClassName 表示父类的名称

super

和java一样,我们可以在子类的构造器中调用super 方法,当然这也是必须的?

如果我们在子类中声明构造器,那么必须在第一行 执行super的方法

如下:

class American extends Person{
     constructor(){
        super();
     }
}

当我需要传递参数的时候:

class American extends Person{
     constructor(name,age){
        super(name,age);
     }
}

实例方法

子类继承的不仅仅是父类的实例属性,还有实例方法

比如:

class Person{
   constructor(name,age){
        this.name=name;
        this.age=age;
     }
     sayHello(){
        console.log("你好");
     }
}
class American extends Person{
     constructor(name,age){
        super(name,age);
     }
}
class Chinese extends Person{
     constructor(name,age){
        super(name,age);
     }

}
const american=new American("张三",18);
console.log(american.name);
console.log(american.sayHello());

const chinese=new American("张三",18);
console.log(chinese.sayHello());

sayHello 是父类中实例方法,那么在实例化的子类中也可以去调用sayHello方法

上面就是对ES6 中继承的相关知识点,当然如果之前学习过面向对象的相关的知识,相信上面的内容你来说简直是小菜一碟

希望对你有所帮助

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

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/17 10:49:34-

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