美文网首页
class继承

class继承

作者: YangJeremy | 来源:发表于2018-03-27 22:04 被阅读0次
class ColorPoint extends Point {
  constructor(x, y, color) {
    super(x, y); // 调用父类的constructor(x, y)
    this.color = color;
  }

  toString() {
    return this.color + ' ' + super.toString(); // 调用父类的toString()
  }
}

子类必须在constructor方法中调用super方法,否则新建实例时会报错

class Point { /* ... */ }

class ColorPoint extends Point {
  constructor() {
  }
}

let cp = new ColorPoint(); // ReferenceError

ES5 的继承,实质是先创造子类的实例对象this,然后再将父类的方法添加到this上面(Parent.apply(this))。ES6 的继承机制完全不同,实质是先创造父类的实例对象this(所以必须先调用super方法),然后再用子类的构造函数修改this。

父类的静态方法,也会被子类继承

class A {
  static hello() {
    console.log('hello world');
  }
}

class B extends A {
}

B.hello()  // hello world

class A {}

class B extends A {
  constructor() {
    super();
  }
}

super内部的this指向的是B

class A {}

class B extends A {
  m() {
    super(); // 报错
  }
}


相关文章

  • class-继承(es6)

    继承-JS 继承-class class-总结 Class 在语法上更加贴合面向对象的写法Class 实现继承更加...

  • 2019-06-18 JS 中继承的写法

    使用 prototype 如何继承 使用 class 语法糖如何继承 ``` class Human{ ...

  • Class继承

    Object.getPrototypeOf() super 关键字 类的 prototype 属性和proto属性...

  • class继承

    子类必须在constructor方法中调用super方法,否则新建实例时会报错 ES5 的继承,实质是先创造子类的...

  • class继承

    ES6提供了更接近传统语言的写法,引入了Class(类)这个概念。新的class写法让对象原型的写法更加清晰、更像...

  • class继承

    1.class可以通过extends关键字实现继承,比es5的通过修改原型链实现继承,要清晰和方便。 子类必须在c...

  • class继承

    class继承是从ES6开始正式被引入到JavaScript中。class的目的就是让定义类更简单。 用函数实现 ...

  • Effective c++ 学习笔记(item 38 item3

    # private继承和public继承的区别 ``` class Base{}; class Derived:p...

  • JavaScript笔记3

    RegExp、JSON、创建对象、构造函数、原型对象、原型链、原型继承、class、class继承 RegExp ...

  • 继承模式

    原型继承 子类型的原型为父类型的一个实例对象 继承封装 class 等同于 class 继承

网友评论

      本文标题:class继承

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