Bienvenido a la Comunidad de Treehouse

¿Quieres colaborar en errores de código? ¿Tienes errores que necesitan comentarios? ¿Buscas un par de ojos adicionales en tu último proyecto? aquí.

¿Buscas aprender algo nuevo?

Treehouse ofrece una prueba gratuita de siete días para estudiantes nuevos. Obtén acceso a miles de horas de contenido y únete a miles de

Inicia tu prueba gratuita

JavaScript Bucles en JavaScript Trabajar con Bucles 'for' El Desafío de Refactorización - Código Duplicado

Atascado...

Cualquier ayuda con esto sería apreciada. En la explicación de Guil entiendo casi todo, excepto cómo const randomValue = () => Math.floor(Math.random() * 256) está vinculado a const color = `rgb( ${value()}, ${value()}, ${value()} )`; al generar el número aleatorio. He leído las preguntas de otras personas en este video, pero no he tenido suerte en comprender. Gracias de antemano.

let html = '';
const randomValue = () => Math.floor(Math.aleatorio() * 256)

función valores randomRGB(valor) {
  const color = `rgb( ${value()}, ${value()}, ${value()} )`;
  return color;
}

para ( let i = 1; i<= 10; i++ ) {
  html += `<div style="background-color: ${valores randomRGB(randomValue)}">${i}</div>`;
}

documento.querySelector('main').innerHTML = html;

2 Respuestas

Steven Parker
Steven Parker
244 163 puntos
función valores randomRGB(valor) {                                   // <-- el argumento para "value" ...
  const color = `rgb( ${valor()}, ${valor()}, ${valor()} )`;  // <-- ...se llama aquí

Dado que "value" es el parámetro, cualquier argumento que se proporcione a "randomRGB" se llamará 3 veces para crear "color".

  html += `<div style="background-color: ${valores randomRGB(randomValue)}">${i}</div>`;
//                                                   ^^^^^^^^^^^

Ahora, como "randomValue" se pasa como argumento, es lo que se llama dentro de "randomRGB". Tenga en cuenta que la referencia a "randomValue" se está pasando sin que se haya llamado aún. ¿Tiene sentido ahora?

Me frustra decir que todavía no entiendo. En otra explicación dijiste: "El randomValue la función no se llama hasta el punto donde ves value() en la otra función." No sé por qué no puedo entender el concepto.

¿Hay otra forma en que puedas explicar cómo se llama esto y tal vez simplificarlo? Disculpa las molestias y gracias de antemano.

let randomValue = () => Math.floor(Math.aleatorio() * 256);

función valores randomRGB(valor) {
  const color = `rgb( ${value()}, ${value()}, ${value()} )`;
  return color;
} 
Steven Parker
Steven Parker
244 163 puntos

¿Te sientes cómodo con el concepto de parámetros tal como se usan en las funciones? Recuerda que solo actúan como marcadores de posición para los argumentos que se pasarán cuando se llame a la función.

Entonces, cuando se define la función randomRGB, "value" es solo un marcador de posición, pero cuando se llama a la función en el bucle usando randomRGB(randomValue) eso significa que "randomValue" reemplazará "value" en la función.

Entonces, lo que la función realmente hace en ese punto es esto:

return `rgb( ${randomValue()}, ${randomValue()}, ${randomValue()} )`;

Después de leer tu explicación y revisar el video de Guil Parámetros de función y argumentos, ahora entiendo. ¡Muchas gracias por la ayuda!