ES6 类继承 和 super的使用
栏目: JavaScript · 发布时间: 6年前
内容简介: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时,控制器是否可以从父控制器继承范围
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Rust编程之道
张汉东 / 电子工业出版社 / 2019-1 / 128
Rust 是一门利用现代化的类型系统,有机地融合了内存管理、所有权语义和混合编程范式的编程语言。它不仅能科学地保证程序的正确性,还能保证内存安全和线程安全。同时,还有能与C/C++语言媲美的性能,以及能和动态语言媲美的开发效率。 《Rust编程之道》并非对语法内容进行简单罗列讲解,而是从四个维度深入全面且通透地介绍了Rust 语言。从设计哲学出发,探索Rust 语言的内在一致性;从源码分析入......一起来看看 《Rust编程之道》 这本书的介绍吧!