-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathclasses.js
More file actions
52 lines (43 loc) · 1.46 KB
/
Copy pathclasses.js
File metadata and controls
52 lines (43 loc) · 1.46 KB
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
// 1. Copy and paste your prototype in here and refactor into class syntax.
/* == Step 1: Base Constructor ==
Create a constructor function named CuboidMaker that accepts properties for length, width, and height
*/
class CuboidMaker {
constructor(length, width, height) {
this.length = length;
this.width = width;
this.height = height;
}
// methods
volume() {
return (this.length * this.width * this.height);
}
surfaceArea() {
return 2 * (this.length * this.width + this.length * this.height + this.width * this.height);
}
}
const cuboid = new CuboidMaker(4, 5, 5);
// Test your volume and surfaceArea methods by uncommenting the logs below:
console.log(cuboid.volume()); // 100
console.log(cuboid.surfaceArea()); // 130
/* 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. */
//Cube has all sides same so accepting only one dimension. ********
class CubeMaker extends CuboidMaker {
constructor(length) {
super(length);
}
//CubeMaker methods
volume() {
return (this.length * this.length * this.length);
}
surfaceArea() {
return 6 * (this.length * this.length);
}
}
//CubeMaker object
const cube = new CubeMaker(5);
console.log(cube);
console.log(cube.volume()); // 125
console.log(cube.surfaceArea()); // 150