美文网首页
ES6: extends

ES6: extends

作者: 前端的爬行之旅 | 来源:发表于2020-07-08 11:37 被阅读0次

基本用法

ES6中有关class的继承方式,引入了extends关键字。但其本质仍然是构造函数+原型链的组合式继承。

举个🌰:

class A {
    constructor(name, age) {
        this.name = name;
        this.age = age;
    }
    getName() {
        return this.name;
    }
}

class B extends A {
    constructor(name, age) {
        super(name, age);
        this.job = "IT";
    }
    getJob() {
        return this.job;
    }
    getNameAndJob() {
        return super.getName() + this.job;
    }
}

var b = new B("Tom", 20);
console.log(b.name);
console.log(b.age);
console.log(b.getName());
console.log(b.getJob());
console.log(b.getNameAndJob());
//输出:Tom,20,Tom,IT,TomIT

重点解析之extends关键字

上面代码定义了一个B类(class),该类通过extends关键字,继承了A类的所有属性和方法。A类中的所有方法默认是添加到B的原型上,所以extends继承的实质仍然是原型链。

测试代码:

console.log("constructor" in b);
console.log("getName" in b); 
console.log(b.hasOwnProperty("getName"));
console.log(b.hasOwnProperty("constructor"));
//输出:true,true,false,false

参考链接: https://www.imooc.com/article/79235
更多细节参考:https://segmentfault.com/a/1190000021306417

相关文章

  • ES6 中的继承和派生类

    《深入理解ES6》阅读随笔 extends 在 ES6 中,可以使用 extends 关键字来实现继承的功能,如下...

  • JavaScript继承

    es6继承 class Square extends Polygon {constructor(length) {...

  • ES6: extends

    基本用法 ES6中有关class的继承方式,引入了extends关键字。但其本质仍然是构造函数+原型链的组合式继承...

  • 继承

    老版继承 call () ES6继承 extends 继承super 超类/父类

  • ES6新特性

    ES6新特性 1.类(支持继承 extends)class TestClass { constructor(...

  • ES6学习

    最常用的ES6特性let, const, class, extends, super, arrow functio...

  • 无标题文章

    最常用的ES6特性 let, const, class, extends, super, arrow functi...

  • JavaScript ES6新语法

    最常用的ES6特性 let, const, class, extends, super, arrow functi...

  • ES6个人总结

    首先感谢简书的es6说明的作者 ES6常用的功能及方法: 1.let、const 2.class, extends...

  • 13.ES6面向对象之继承

    ES6中面向对象可以继承:1、ES6中的继承使用关键字 extends2、调用父类构造使用super() 案例

网友评论

      本文标题:ES6: extends

      本文链接:https://www.haomeiwen.com/subject/weiqcktx.html