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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- golang 使用组合的方式实现继承
- 构造函数的继承——使用原型对象(prototype)
- 聊聊在 Go 语言里使用继承的翻车经历
- 聊聊在Go语言里使用继承的翻车经历
- 不用继承!使用组合的方式实现下拉刷新和上拉加载
- angularjs – 使用ui-router时,控制器是否可以从父控制器继承范围
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。