-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.js
37 lines (29 loc) · 847 Bytes
/
index.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
/* eslint-disable func-names */
/* eslint-disable no-console */
function decorador(func) {
return function (...args) {
console.log('Función decorada, argumentos:', args);
return func(...args);
};
}
function saludar(nombre) {
return `Hola, ${nombre}!`;
}
const saludarDecorado = decorador(saludar);
console.log(saludarDecorado('Carlos'));
// Dificultad extra
function contabilizarLlamadas(func) {
let contador = 0;
return function (...args) {
contador++;
console.log(`La función ha sido llamada ${contador} veces`);
return func(...args);
};
}
function decirHola(nombre) {
return `Hola, ${nombre}!`;
}
const decirHolaContabilizado = contabilizarLlamadas(decirHola);
console.log(decirHolaContabilizado('Carlos'));
console.log(decirHolaContabilizado('María'));
console.log(decirHolaContabilizado('Juan'));