Skip to content

Commit 4ad126b

Browse files
committed
Optimize setter/getter implementation
1 parent bcdcc33 commit 4ad126b

File tree

1 file changed

+7
-14
lines changed

1 file changed

+7
-14
lines changed

JavaScript/2-reactive.js renamed to JavaScript/2-set-get.js

+7-14
Original file line numberDiff line numberDiff line change
@@ -3,27 +3,20 @@
33
const { PI, sqrt } = Math;
44
const square = x => x * x;
55

6-
// Truncated cone
7-
8-
const volume = (h, r1, r2) => (PI * h / 3) *
9-
(square(r1) + r1 * r2 + square(r2));
10-
11-
const area = (h, r1, r2) => PI * (
12-
square(r1) + square(r2) +
13-
sqrt(square(h) + square(r2 - r1)) * (r1 + r2)
14-
);
15-
16-
// Reactive cone
6+
// Reactive Truncated cone
177

188
class Cone {
199
constructor(r1, r2, h) {
2010
this.cone = { r1, r2, h };
2111
this.calculate();
2212
}
2313
calculate() {
24-
const cone = this.cone;
25-
cone.v = volume(cone.h, cone.r1, cone.r2);
26-
cone.s = area(cone.h, cone.r1, cone.r2);
14+
const { r1, r2, h } = this.cone;
15+
const sr1 = square(r1);
16+
const sr2 = square(r2);
17+
const l = sqrt(square(h) + square(r2 - r1));
18+
this.cone.v = PI * h * (sr1 + r1 * r2 + sr2) / 3;
19+
this.cone.s = PI * (sr1 + sr2 + l * (r1 + r2));
2720
}
2821
set r1(x) {
2922
this.cone.r1 = x;

0 commit comments

Comments
 (0)