web前端全系列 教程
1839个小节阅读:2243.1k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
Class 可以通过extends
关键字实现继承,让子类继承父类的属性和方法。extends 的写法比 ES5 的原型链继承,要清晰和方便很多
xxxxxxxxxx
class Point {
}
class ColorPoint extends Point {
}
ES6 规定,子类必须在constructor()
方法中调用super()
,否则就会报错,这是因为子类自己的this
对象,必须先通过父类的构造函数完成塑造,得到与父类同样的实例属性和方法,然后再对其进行加工,添加子类自己的实例属性和方法。如果不调用super()
方法,子类就得不到自己的this
对象
xxxxxxxxxx
class Point {
constructor(x,y){
this.x = x;
this.y = y;
}
getPoint(){
console.log(this.x,this.y);
}
}
class ColorPoint extends Point {
constructor(x,y,z){
super(x,y)
this.z = z;
}
}
let cp = new ColorPoint(10,20,30)
cp.getPoint();
super
这个关键字,既可以当作函数使用,也可以当作对象使用。在这两种情况下,它的用法完全不同
第一种情况:super
作为函数调用时,代表父类的构造函数。ES6 要求,子类的构造函数必须执行一次super
函数。
xxxxxxxxxx
class A {
constructor(x,y){}
}
class B extends A {
constructor(x,y,z) {
super(x,y);
this.z = z;
}
}
第二种情况:super
作为对象时,在普通方法中,指向父类的原型对象
xxxxxxxxxx
class Point {
constructor() { }
print() {
console.log("Hello");
}
}
class ColorPoint extends Point {
constructor() {
super();
}
getPrint(){
super.print()
}
}
let cp = new ColorPoint()
cp.getPrint()
实时效果反馈
1. super关键字的作用下列描述错误的是:
A super
作为函数调用时,代表父类的构造函数
B super
作为对象时,在普通方法中,指向父类的原型对象
C super
如this
关键字一样
答案
1=>C