-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtask_5.js
67 lines (53 loc) · 1.54 KB
/
task_5.js
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
// Общий класс электроустройст
class Electrodevice {
constructor(name, power) {
this.name = name;
this.power = power;
this.inWork = false;
}
turnON () {
if(!this.inWork){
this.inWork = true;
console.log(`${this.name} ВКЛ`);
} else{
console.log(`${this.name} уже ВКЛ`);
}
}
turnOFF() {
if(this.inWork){
this.inWork = false;
console.log(`${this.name} ВЫКЛ`);
} else{
console.log(`${this.name} уже ВЫКЛ`);
}
}
}
// Класс ламп
class Lamp extends Electrodevice {
constructor(name, power, place) {
super(name, power);
this.place = place;
}
smash() {
this.inWork = false;
console.log(`Упс... ${this.name} разбилась`);
}
}
// Класс телевизоров
class TV extends Electrodevice {
constructor(name, power, brand) {
super(name, power);
this.brand = brand;
}
switchcChannel() {
console.log(this.inWork ? `Канал ${this.name} переключен` : `${this.name} не включен`);
}
}
// Создание экземпляров
const Tablelamp = new Lamp ('Настольная лампа', 60, 'Спальня');
const TvOnKitchen = new TV ('ТВ на кухне', 100, 'Кухня', 'Samsung');
console.log(Tablelamp);
console.log(TvOnKitchen);
Tablelamp.turnON();
Tablelamp.smash();
TvOnKitchen.switchcChannel();