ES6 类继承 和 super的使用

栏目: JavaScript · 发布时间: 5年前

内容简介:ES6继承 详细类容参考:

ES6继承 详细类容参考: http://es6.ruanyifeng.com/#do...

1、super()使用

class A {
    construcor(a, b) {
        this.a = a;
        this.b = b;
    }
}

class B extends A {
    constructor(x, y, z) {
        super(x, y);
        this.z = z;
        console.log(x, '---', y, '----', z, '----');
    }
}

let b = new B(1, 2, 8);
// 1 "---"  2  "----" 8 "----"

注意:ES6中继承的子类中,如果使用构造函数constructor()那么就必须使用 super()方法初始化,这样下面才可以调用this关键字。super()只能用在子类的构造函数之中,用在其他地方就会报错。

子类必须在constructor方法中调用super方法,否则新建实例时会报错。这是因为子类自己的this对象,必须先通过父类的构造函数完成塑造,得到与父类同样的实例属性和方法,然后再对其进行加工,加上子类自己的实例属性和方法。如果不调用super方法,子类就得不到this对象。 ---阮一峰

2、父类中的静态方法,子类中可以通过类名直接调用

class A2 {
    static hello() {
        console.log("hello world");
    }
}

class B2 extends A2 {
    constructor() {
        super();
    }
}

B2.hello();
// hello world

3、Object.getPrototypeOf()判断子类继承的父类

Object.getPrototypeOf(B2);
// A2

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

区块链技术驱动金融

区块链技术驱动金融

阿尔文德·纳拉亚南、约什·贝努、爱德华·费尔顿、安德鲁·米勒、史蒂文·戈德费德 / 林华、王勇 / 中信出版社,中信出版集团 / 2016-8-25 / CNY 79.00

从数字货币及智能合约技术层面,解读了区块链技术在金融领域的运用。“如果你正在寻找一本在技术层面解释比特币是如何运作的,并且你有一定计算机科学和编程的基本知识,这本书应该很适合你。” 《区块链:技术驱动金融》回答了一系列关于比特币如何运用区块链技术运作的问题,并且着重讲述了各种技术功能,以及未来会形成的网络。比特币是如何运作的?它因何而与众不同?你的比特币安全吗?比特币用户如何匿名?区块链如何......一起来看看 《区块链技术驱动金融》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换