70 lines
1.0 KiB
Plaintext
70 lines
1.0 KiB
Plaintext
== Why is this an issue?
|
|
|
|
In the constructor of a derived class, accessing ``++this++`` or ``++super++`` before ``++super()++`` is called raises a reference error. ``++super()++`` should always be called first.
|
|
|
|
|
|
=== Noncompliant code example
|
|
|
|
[source,javascript]
|
|
----
|
|
class Bar {
|
|
}
|
|
|
|
class Foo extends Bar {
|
|
constructor() {
|
|
this.val = 0; // Noncompliant
|
|
super();
|
|
}
|
|
}
|
|
|
|
class Foobar extends Foo {
|
|
constructor() {
|
|
super.val = 1; // Noncompliant
|
|
super();
|
|
}
|
|
}
|
|
|
|
----
|
|
|
|
|
|
=== Compliant solution
|
|
|
|
[source,javascript]
|
|
----
|
|
class Bar {
|
|
}
|
|
|
|
class Foo extends Bar {
|
|
constructor() {
|
|
super();
|
|
this.val = 0;
|
|
}
|
|
}
|
|
|
|
class Foobar extends Foo {
|
|
constructor() {
|
|
super();
|
|
super.val = 1;
|
|
}
|
|
}
|
|
----
|
|
|
|
|
|
|
|
ifdef::env-github,rspecator-view[]
|
|
|
|
'''
|
|
== Implementation Specification
|
|
(visible only on this page)
|
|
|
|
include::message.adoc[]
|
|
|
|
include::highlighting.adoc[]
|
|
|
|
'''
|
|
== Comments And Links
|
|
(visible only on this page)
|
|
|
|
include::comments-and-links.adoc[]
|
|
endif::env-github,rspecator-view[]
|