es6class的继承

作者: tiancai啊呆 | 来源:发表于2017-10-05 17:02 被阅读35次

Class 可以通过extends关键字实现继承。
ES6 的继承机制实质是先创造父类的实例对象this(所以必须先调用super方法),然后再用子类的构造函数修改this。
使用继承注意点:

  • 子类必须在constructor方法中调用super方法,否则新建实例时会报错。
  • 在子类的构造函数中,只有调用super之后,才可以使用this关键字,否则会报错。
  • super作为函数调用时,代表父类的构造函数,但是返回的是子类的实例。只能用在子类的构造函数之中,用在其他地方就会报错。
  • super作为对象时,在普通方法中,指向父类的原型对象;在静态方法中,指向父类。
  • ES6 规定,通过super调用父类的方法时,super会绑定子类的this。
  • 使用super的时候,必须显式指定是作为函数、还是作为对象使用,否则会报错。
  • 子类的_proto_属性,表示构造函数的继承,总是指向父类。
  • 子类prototype属性的_proto_属性,表示方法的继承,总是指向父类的prototype属性。

代码说明:

class Person {
    constructor(fullname,age) {
        this.fullname = fullname;
        this.age = age;
    }
    toString() {
        console.log(this.fullname+'---'+this.age);
            return this.fullname+'---'+this.age;
    }
    static eat() {
        console.log('x am eating');
     }
}
class Man extends Person {
    constructor(fullname,age,sex) {
        super(fullname,age);
        this.sex=sex;
    }
    toString() {
        console.log(super.toString()+'---'+this.sex);
    }
}
var m1=new Man('xxx',24 ,'man');
m1.toString(); //xxx---24---man 
Man.eat();   //x am eating 

本文只是学习es6的一些简单笔记,详情请看阮一峰的es6入门

相关文章

  • es6class的继承

    Class 可以通过extends关键字实现继承。ES6 的继承机制实质是先创造父类的实例对象this(所以必须先...

  • ES5模拟ES6class继承

  • 前端面试必备之JavaScript继承机制的设计思想

    文章摘要 一、从古代说起二、new运算符的缺点三、prototype属性的引入 ES6class出现之前,一直很难...

  • Es6class笔记

    ES6引入了 Class,作为对象的模板。通过class关键字,可以定义类。ES6 的类,完全可以看作构造函数的另...

  • 继承 继承

    属性拷贝 继承不单单能通过原型链实现,也能通过其他方式实现,属性拷贝就是其中一种方法。 通过属性拷贝也能实现继承子...

  • 继承

    继承的引入和概述 继承案例和继承的好处 继承的弊端 Java中继承的特点 继承的注意实现和什么时候使用继承 继承中...

  • python零基础13:类的继承和定制

    类的定制和继承是什么? 类的继承 类的定制 类的继承要怎么写? 继承基础语法 继承之多层继承 继承的多重继承 类的...

  • Python-学习之路-08 OOP -02

    单继承和多继承 单继承:每个类只能继承一个类 多继承:每个类可以继承多个类 单继承的多继承的优缺点 菱形继承/钻石...

  • JS的继承(原型继承与Class继承)

    一、原型继承 上面代码中,在子构造函数中调用父构造函数,并使用 call 函数传入 this,这样子构造函数就会继...

  • 原型相关(二)

    1.继承 继承方式:接口继承(只继承方法签名)实现继承(继承实际的方法)ECMAScript只支持实现继承,并且主...

网友评论

    本文标题:es6class的继承

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