-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path48_CalculatorConstructor.js
66 lines (56 loc) · 1.66 KB
/
48_CalculatorConstructor.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
'use strict';
/* By Ekaterina Khorina */
let calculator = new Calculator();
calculator.read();
console.log( "Сумма = " + calculator.sum() );
console.log( "Произведение = " + calculator.mul() );
/**
* функция-конструктор, которая создает калькулятор
* @constructor
*/
function Calculator() {
/**
* Проверяет является ли полученная переменная числом
* @param num
* @return {boolean}
*/
function isNumber( num ) {
return !isNaN( parseFloat( num ) ) && isFinite( num );
}
let variables = {
'a' : null,
'b' : null
};
/**
* Запрашивает два значения при помощи prompt и запоминает их в свойствах объекта
*/
this.read = function () {
for (let key in variables) {
do {
variables[key] = +prompt( `Введите число ${key}`, '0' );
} while ( !isNumber( variables[key] ) );
}
};
/**
* Возвращает сумму запомненных свойств
* @return {number}
*/
this.sum = function() {
let result = 0;
for (let key in variables) {
result += variables[key];
}
return result;
};
/**
* Возвращает произведение запомненных свойств
* @return {number}
*/
this.mul = function() {
let result = 1;
for (let key in variables) {
result *= variables[key];
}
return result;
};
}