-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtask_4.js
66 lines (51 loc) · 1.54 KB
/
task_4.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
// Общий класс электроустройст
function Electrodevice (name, power) {
this.name = name;
this.power = power;
this.inWork = false;
}
Electrodevice.prototype.turnON = function() {
if(!this.inWork){
this.inWork = true;
console.log(`${this.name} ВКЛ`);
} else{
console.log(`${this.name} уже ВКЛ`);
}
}
Electrodevice.prototype.turnOFF = function() {
if(this.inWork){
this.inWork = false;
console.log(`${this.name} ВЫКЛ`);
} else{
console.log(`${this.name} уже ВЫКЛ`);
}
}
// Класс ламп
function Lamp (name, power, place) {
this.name = name;
this.power = power;
this.place = place;
}
Lamp.prototype = new Electrodevice();
Lamp.prototype.smash = function () {
this.inWork = false;
console.log(`Упс... ${this.name} разбилась`);
}
// Класс телевизоров
function TV (name, power, brand) {
this.name = name;
this.power = power;
this.brand = brand;
}
TV.prototype = new Electrodevice();
TV.prototype.switchcChannel = function () {
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();