Помилка створення екземпляра
важливість: 5
Ось код з Rabbit
розширює Animal
.
На жаль, неможливо створити об’єкти Rabbit
. Що не так? Полагодьте це.
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)
;
Це тому, що конструктор дочірнього классу повинен викликати super()
.
Ось правильний код:
class
Animal
{
constructor
(
name
)
{
this
.
name =
name;
}
}
class
Rabbit
extends
Animal
{
constructor
(
name
)
{
super
(
name)
;
this
.
created =
Date.
now
(
)
;
}
}
let
rabbit =
new
Rabbit
(
"Білий кролик"
)
;
// зараз добре
alert
(
rabbit.
name)
;
// Білий кролик