classes: remove patterns

This commit is contained in:
Ilya Kantor 2019-04-21 13:40:15 +03:00
parent be9f48c2f2
commit b8eb04dfb6
76 changed files with 429 additions and 743 deletions

View file

@ -0,0 +1,27 @@
That's because the child constructor must call `super()`.
Here's the corrected code:
```js run
class Animal {
constructor(name) {
this.name = name;
}
}
class Rabbit extends Animal {
constructor(name) {
*!*
super(name);
*/!*
this.created = Date.now();
}
}
*!*
let rabbit = new Rabbit("White Rabbit"); // ok now
*/!*
alert(rabbit.name); // White Rabbit
```

View file

@ -0,0 +1,30 @@
importance: 5
---
# Error creating an instance
Here's the code with `Rabbit` extending `Animal`.
Unfortunately, `Rabbit` objects can't be created. What's wrong? Fix it.
```js run
class Animal {
constructor(name) {
this.name = name;
}
}
class Rabbit extends Animal {
constructor(name) {
this.name = name;
this.created = Date.now();
}
}
*!*
let rabbit = new Rabbit("White Rabbit"); // Error: this is not defined
*/!*
alert(rabbit.name);
```