Skip to content

Commit 9690eda

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

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
/*
2+
* EJERCICIO:
3+
* Explora el concepto de "decorador" y muestra cómo crearlo
4+
* con un ejemplo genérico.
5+
*
6+
* DIFICULTAD EXTRA (opcional):
7+
* Crea un decorador que sea capaz de contabilizar cuántas veces
8+
* se ha llamado a una función y aplícalo a una función de tu elección.
9+
*/
10+
11+
/*
12+
Esta es la propuesta de decoradores de Javascript, aún en stage 3
13+
function logger(value, context) {
14+
console.log(value, context);
15+
}
16+
17+
@logger
18+
class Persona {
19+
20+
altura = 1.75;
21+
22+
@logger
23+
getAltura() {
24+
return this.altura;
25+
}
26+
}
27+
*/
28+
29+
// Implementación del Patrón Decorador sin sintaxis de decorador
30+
31+
function logger(metodo) {
32+
33+
return function (...arg) {
34+
35+
let result = metodo.apply(this, ...arg);
36+
console.log('El decorador se ha ejecutado');
37+
38+
return result;
39+
};
40+
}
41+
42+
class Persona {
43+
44+
altura = 1.75;
45+
46+
getAltura() {
47+
console.log('Altura', this.altura);
48+
return this.altura;
49+
}
50+
}
51+
52+
p1 = new Persona();
53+
54+
p1.getAltura = logger(p1.getAltura);
55+
p1.getAltura();

0 commit comments

Comments
 (0)