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
Stephen Cole
Estudiante de Cursos Plus 15,811 PuntosUna observación...
Esto no es realmente una pregunta. Es más bien una observación.
Esta declaración no realmente do nada.
const random255 = () => Math.floor(Math.aleatorio() * 255);
Si imprimo el valor de random255 en la consola:
console.log(random255);
Obtengo esto: () => Math.floor(Math.random() * 255).
Se convierte mantiene en una función hasta que se () añaden.
Esto es lo que le permitió a Guil pasar el funcionamiento interno de la función como una variable a otra función y luego ejecutarlas varias veces independientemente.
No entendía por qué pasar un argumento resultó en tres diferente números.
¡Fascinante!
1 Respuesta
Steven Parker
244 163 puntosEs es una función, pero no se invoca ("llama") hasta que añades los paréntesis. Cuando pasas una devolución de llamada, no no quieres invocarla todavía, solo quieres pasar la función por nombre para que la otra función a la que la pasas pueda hacer la llamada más tarde.
La declaración que parecía no hacer nada en realidad define la función. También podría escribirse así:
función random255() { return Math.floor(Math.aleatorio() * 255); }
¿Tiene más sentido ahora?
Stephen Cole
Estudiante de Cursos Plus 15,811 PuntosStephen Cole
Estudiante de Cursos Plus 15,811 PuntosCreo que malinterpretaste mi comentario.
Creo que es interesante cómo la variable
random255almacena el código de la función en lugar de invocar una función tres veces.Podría haber creado --como lo hiciste-- una función y luego la llamé tres veces. En su lugar... pasando la variable con código dentro. Añadió el
()para convertirla en una función.console.log(random255);devolvió el código
() => Math.floor(Math.random() * 255)console.log( random255() )ejecutó la función.
Guil creó una función y pasó el valor de la expresión de función flecha varias veces.
Una especie de
colors(random255)y luego, en la función usórandom255()para invocarla tantas veces como fuera necesario.Solo pensé que era interesante.
Steven Parker
244 163 puntosSteven Parker
244 163 puntos¿Qué podrías haber hecho en su lugar?