1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
class A {
constructor(a = 'superConstructorDefault') {
this.a = a;
}
static staticMethod(b = 'superStaticDefault') {
return b;
}
method(c = 'superMethodDefault') {
return c;
}
}
class B extends A {
constructor(a = 'constructorDefault') {
assert.strictEqual(a, 'constructorDefault');
super();
}
static staticMethod(b = 'staticDefault') {
assert.strictEqual(b, 'staticDefault');
return super.staticMethod();
}
method(c = 'methodDefault') {
assert.strictEqual(c, 'methodDefault');
return super.method();
}
}
assert.strictEqual(B.staticMethod(), 'superStaticDefault');
const b = new B();
assert.strictEqual(b.a, 'superConstructorDefault');
assert.strictEqual(b.method(), 'superMethodDefault');
function SuperFunction(a = 'functionDefault') {
assert.strictEqual(a, 'functionDefault');
}
class C extends SuperFunction {}
new C();
|