-
Notifications
You must be signed in to change notification settings - Fork 3.6k
/
Copy pathclasses.js
50 lines (42 loc) · 1.36 KB
/
classes.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
console.log("-CLASSES-");
console.log("");
// 1. Copy and paste your prototype in here and refactor into class syntax.
class CuboidMakerX {
constructor(length, width, height) {
this.length = length;
this.width = width;
this.height = height;
}
volume() {
return this.length * this.width * this.height;
}
surfaceArea() {
return(2 * (this.length * this.width * this.height));
}
}
var cuboid = new CuboidMakerX(4, 5, 5);
// Test your volume and surfaceArea methods by uncommenting the logs below:
console.log("Volume Task: ", cuboid.volume()); // 100
console.log("");
console.log("Surface Area Task: ", cuboid.surfaceArea()); // 130
console.log("");
// Stretch Task: Extend the base class CuboidMaker with a sub class called CubeMaker. Find out the formulas for volume and surface area for cubes and create those methods using the dimension properties from CuboidMaker. Test your work by logging out your volume and surface area.
class cubeMaker extends CuboidMakerX {
constructor(dimension) {
super(dimension, dimension, dimension);
}
volume() {
return Math.pow(this.width, 3);
}
surfaceArea() {
return 6 * Math.pow(this.width, 2);
}
}
const myCube = new cubeMaker(4);
console.log("Stretch:")
console.log("");
console.log(myCube);
console.log("");
console.log(myCube.volume);
console.log("");
console.log(myCube.surfaceArea);