-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcalculatorClosure.js
More file actions
44 lines (36 loc) · 1.34 KB
/
calculatorClosure.js
File metadata and controls
44 lines (36 loc) · 1.34 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
/*
En este desafío tendrás que crear una calculadora mediante el uso de closures.
La calculadora debe contar con los siguientes métodos:
add: recibe un número, lo suma al total y devuelve el resultado
subtract: recibe un número, lo resta al total y devuelve el resultado
multiply: recibe un número, lo multiplica al total y devuelve el resultado
divide: recibe un número, lo divide al total y devuelve el resultado
clear: reinicia el total a 0 y devuelve el resultado
getTotal: devuelve el total actual.
*/
/*
Input:
const calculator = createCalculator()
calculator.add(10)
Output: 10
*/
function createCalculator(){
// Variable que recordará el valor en cada retorno
let num = 0
return {
// Creamos una arrow function para cada operación
add : val => num += val,
subtract : val => num -= val,
multiply : val => num *= val,
divide : val => num /= val,
clear : () => num = 0,
getTotal : () => num,
}
}
const myCalculator = createCalculator()
console.log(myCalculator.add(20)) // 20
console.log(myCalculator.subtract(8)) // 12
console.log(myCalculator.multiply(5)) // 60
console.log(myCalculator.divide(10)) // 6
console.log(myCalculator.getTotal()) // 6
console.log(myCalculator.clear()) // 0