Como declarar una función en JavaScript - Clase 4.6

Avatar

const c = console.log const multiplicar = (a , b) => a * b c(multiplicar(2, 8))

por que c asi si c es una constante no una función, no entiendo que pasa aca

Avatar

si fuera una función c no deberia ser asi:

const c() = console.log

y por que se le asigna console.log no se supone que una funcion es asi:

const c = (a, b) => { //codigo }

escribi asi por que no me dejo ediar la publicación

Necesitas iniciar sesión para responder.
Avatar

Los paréntesis () se usan solo para ejecutar una función pero no para definirla. Ejemplo:

const c = console.log
c(5) // 5

En la linea uno, si yo igualara c = console.log() estaría ejecutando la función console.log en lugar de asignarla a la constante c

Sobre tu otra pregunta, es verdad que una función es const c = (parametros) => {codigo} pero en este caso console.log es una funcion que ya existe, por eso simplemente se le asigna a una constante para poder reutilizarla.

Avatar

Muchas gracias por la respuesta, lo de los parentesis si lo entiendo bien, se usan solo parae ejecutar el codigo de la función, lo que no me quedaba claro erá por que const c es una función

entiendo que const c = console.log es una función cuyo parametro es console.log o apunta a su codigo pero no tiene retorno, es correcto o me equivoco?

Avatar

yo realice el typeof en el navegador como enseñas en el curso y vi que c es una función no una constante y por eso tengo este enredo

Necesitas iniciar sesión para responder.
Avatar

Edité el título de tu pregunta para que se entienda mejor y más personas puedan ayudate.

Necesitas iniciar sesión para responder.
Avatar

Los "()" se usan para llamar (ejecutar el condigo) a la función, no para declararlo

//Estas declarando la constante de nombre 'c' y esta apunta (hacer referencia) al código del método _log_ del objeto _console_
const c = console.log

//ahora el método _log_ lo puedes mandar a llamar (ejecutar) de dos formas
//1
console.log(c)
console.log("Hola")
//2
c(console.log)
c("hola")

Es posible que las arrow functions te estén creando una confusión

//Declarando con 1 parámetro
const hi = nombre => console.log(`Hi ${nombre}!`)
hi("Pedro")

//Declarando función sin parámetros, 
const hola = () => console.log("Hola!)
hola()
Avatar

Amigo gracias por la respuesta muy clara la explicación, pero le pido disculpas apenas estoy estudiando Js y se me hace complejo, const hi = nombre => console.log(Hi ${nombre}!) en esa linea de codigo no debía ir nombre dentro de parentesis? asi: const hi = (nombre) => console.log(Hi ${nombre}!) o los paréntesis se pueden omitir para los parámetros?

Necesitas iniciar sesión para responder.
Avatar

Las respuestas anteriores están muy bien. Para complementar:

No puedes hacer esto:

const a() = console.log

Debido a que estás declarando una constante y la constante no puede tener paréntesis en el nombre.

Avatar

anteriormente estudie java y en java se hace asi para una funcion sin inicializar public string My function(); pense que aca era parecido

Necesitas iniciar sesión para responder.
Necesitas iniciar sesión para responder.