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时,控制器是否可以从父控制器继承范围
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Cyberwar
Kathleen Hall Jamieson / Oxford University Press / 2018-10-3 / USD 16.96
The question of how Donald Trump won the 2016 election looms over his presidency. In particular, were the 78,000 voters who gave him an Electoral College victory affected by the Russian trolls and hac......一起来看看 《Cyberwar》 这本书的介绍吧!