-
Notifications
You must be signed in to change notification settings - Fork 0
/
07_Inheritance.js
76 lines (63 loc) · 2.55 KB
/
07_Inheritance.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
76
/*
Description:
Inheritance
Modifications:
---------------------------------------------------------------------------------------
Date Vers. Comment Name
---------------------------------------------------------------------------------------
07.11.23 02.00 Updated Siddiqui
---------------------------------------------------------------------------------------
*/
// ==========================================================================================================
// Link
// ==========================================================================================================
// - https://javascript.info/class-inheritance
// ==========================================================================================================
// Base
// ==========================================================================================================
class BaseClass {
constructor(value = 99) {
this.property1 = value;
}
getter() {
return this.property1;
}
}
// ==========================================================================================================
// Inheritance
// ==========================================================================================================
class SubClassInheritance extends BaseClass {
constructor(value1, value2) { // Sub constructor
super(value1); // Base constructor
this.property2 = value2;
}
getter() {
this.property1 += 1;
return super.getter() // Base method
}
getter_sub() { // Sub metho
return this.property2;
}
}
let ins_inheritance = new SubClassInheritance(103, 203);
console.log(ins_inheritance.getter());
console.log(ins_inheritance.getter_sub());
// ==========================================================================================================
// Composition (With Dependency Injection)
// ==========================================================================================================
class SubClassComposition {
constructor(base, value) { // Sub constructor
this.base = base;
this.property_sub = value;
}
getter() {
this.base.property += 1;
return this.base.getter();
}
getter_sub() {
return this.property_sub;
}
}
let ins_composition = new SubClassComposition(new BaseClass(), 33);
console.log(ins_composition.getter());
console.log(ins_composition.getter_sub());