Skip to content

Commit b0b2248

Browse files
#24-javascript
1 parent 9690eda commit b0b2248

File tree

1 file changed

+30
-2
lines changed

1 file changed

+30
-2
lines changed

Roadmap/24 - DECORADORES/javascript/caterinarodriguezdev.js

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
*/
1010

1111
/*
12+
1213
Esta es la propuesta de decoradores de Javascript, aún en stage 3
1314
function logger(value, context) {
1415
console.log(value, context);
@@ -27,7 +28,6 @@ class Persona {
2728
*/
2829

2930
// Implementación del Patrón Decorador sin sintaxis de decorador
30-
3131
function logger(metodo) {
3232

3333
return function (...arg) {
@@ -52,4 +52,32 @@ class Persona {
5252
p1 = new Persona();
5353

5454
p1.getAltura = logger(p1.getAltura);
55-
p1.getAltura();
55+
p1.getAltura();
56+
57+
58+
console.log('---------------------------DIFICULTAD EXTRA------------------------');
59+
60+
let numLlamadas = 0;
61+
62+
const contador = (metodo) => {
63+
64+
return function (...arg) {
65+
66+
numLlamadas++;
67+
metodo.apply(this, ...arg);
68+
}
69+
}
70+
71+
let antonioRecio = () => {
72+
console.log('Antonio Recio, mayorista, no limpio pescado');
73+
}
74+
75+
antonioRecio = contador(antonioRecio);
76+
77+
let i = 0;
78+
while (i < Math.floor(Math.random() * 10) + 1) {
79+
antonioRecio();
80+
i++;
81+
}
82+
83+
console.log(`La función ha sido llamada ${numLlamadas} veces`);

0 commit comments

Comments
 (0)