标签:-- call static log xtend struct es6 原型 return
//super关键字
//1、作为函数调用,调用父类的构造函数.
//ES6中要求,在字类构造函数中,必须执行一个super函数
//super指向父类的原型不是父类class
class A {
constructor(x) {
this.x = x
}
}
class B extends A {
constructor(x, y) {
//调用父类构造函数
//A.prototype.constructor.call(this)
//super代表的父类构造函数,但是在执行父类构造函数中的this代表的是子类的实例
super(x)
this.y = y
}
}
var b = new B
console.log(b)
//2、super作为对象引用,指向父类的原型对象
class C {
//定义在父类实例自身属性
x = 2
//定义在父类原型对象上
p() {
return 1
}
}
C.prototype.y = 3
class D extends C {
constructor() {
super();
console.log(super.p())
console.log(super.x, super.y)
}
}
var d = new D()
console.log("d", d)
console.log("-------------------------")
//父类的静态方法,可以被子类继承
class Foo {
static methodA() {
return "hello"
}
}
class Bar extends Foo {
static methodB() {
//静态方法中的super,指向父类 Foo.methodA
return super.methodA() + " methodB"
}
}
console.log(Bar.methodA())
console.log(Bar.methodB())
标签:-- call static log xtend struct es6 原型 return
原文地址:https://www.cnblogs.com/lceihen/p/14454747.html