Explica este código JavaScript
const value = { number: 10 };
const multiply = (x = { ...value }) => {
console.log((x.number *= 2));
};
multiply();
multiply();
multiply(value);
multiply(value);
- A:
20,40,80,160 - B:
20,40,20,40 - C:
20,20,20,40 - D:
NaN,NaN,20,40
Respuesta en el primer comentario.
Top comments (3)
Respuesta
C:
20,20,20,40Hay que concentrarse en el orden en que se llaman las funciones para comprender que es lo que pasa acá.
Primera llamada:
A
multiplyno le pasamos ningún parámetro, por ende, toma el parámetro por defectoxque es un objeto desestructurado cuya keynumbertiene el valor de10. Entoncesx.number *= 2nos retorna20.Segunda llamada:
Similar a la primera llamada, hacemos lo mismo, entonces obtenemos nuevamente
20.Tercera llamada:
A
multiplyen su llamada le pasamos el argumentovaluepor lo que la función ahora ignora el parámetro por defecto.numberes nuevamente10, por ello el resultado de la multiplicación nuevamente será20.Cuarta llamada:
Similar a la tercera llamada, pero el valor de
valueactual es20que fue el resultado de la tercera llamada, entonces ahorax.number *= 2, será40.fernando te estoy siguiendo porque ahorita aprendo espanol. Va a estar interesante leyendo articulos sobre el codigo en Espanol
Muchas gracias por tu comentario! Espero que mis posts te sirvan o ayuden. Un saludo!