-
Notifications
You must be signed in to change notification settings - Fork 0
/
test.js
75 lines (62 loc) · 1.27 KB
/
test.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
68
69
70
71
72
73
74
75
class Animal {
constructor(species, legs, name) {
this.species = species;
this.legs = legs;
this.name = name;
}
identify() {
console.log(`This animal is a ${this.species}, and has ${this.legs} legs.`);
}
fetch() {
console.log("I don't want to fetch.");
}
}
class Dog extends Animal {
constructor(name) {
super('dog', 4); // a dog has 4 legs
this.name = name;
}
bark() {
console.log('Woof!');
}
fetch(item) {
console.log(`${this.species} is fetching a ${item}`);
}
call(name) {
name === this.name
? console.log(`Yes, this is ${name}`)
: console.log(`No, this is not ${name}`);
}
}
class Cat extends Animal {
constructor(name) {
super('cat', 4);
this.name = name;
}
meow() {
console.log('Meow!');
}
scratch(item) {
console.log(`${this.species} ${this.name} is scratching a ${item}`);
}
call(name) {
console.log(`${this.name} is ignoring you.`);
}
}
const human = new Animal('human', 2, 'Siva');
human.identify();
// human.bark(); // gives error
human.fetch();
console.log(human.name);
const dog = new Dog('Baba');
dog.bark();
console.log(dog.legs);
dog.identify();
dog.fetch('ball');
console.log(dog.name);
dog.call('Baba');
dog.call('Henk');
const cat = new Cat('Dino');
cat.meow();
cat.call('Garfield');
cat.scratch('pole');