Hay algo que no he logrado entender, porque algunas funciones se llaman con los paréntesis (), y porque simplemente las otras no. o sea n...

Diego Grueso

Diego Grueso

Pregunta
studenthace 5 años

Hay algo que no he logrado entender, porque algunas funciones se llaman con los paréntesis (), y porque simplemente las otras no. o sea no los usa y de igual manera trabajan.

O sea cual es la diferencia de en una parte del código escribirla así y en otras simplemente no.

3 respuestas
para escribir tu comentario
    Luis Lira

    Luis Lira

    studenthace 5 años

    En ocasiones depende el uso que les estás dando, por ejemplo hay una funciones de JavaScript llamada Higher Order Functions que en realidad reciben otra función, la primera función se encargará de ejecutar la que nosotros le pasemos.

    Por ejemplo, la función

    map
    es un HOF, esto quiere decir que la misma función se encargará de ejecutar la que nosotros le pasemos, se puede hacer de las siguientes tres maneras:

    [1, 2, 3].map((number) => { console.log(number) }) [1, 2, 3].map(function (number) { console.log(number) }) [1, 2, 3].map(console.log)

    Las tres tendrán el mismo resultado porque map se encargará de ejecutarlas y como puedes ver, nosotros podemos ejecutarlas explícitamente como en los ejemplos 1 y 2, o podemos dejarlo implícito como en el ejemplo 3.

    Diego Grueso

    Diego Grueso

    studenthace 5 años

    Ok entiendo, pero puedes aclararme lo siguiente:

    setTimeout(this.siguienteNivel, 600); --> hice un debug, y this es nuestra clase Juego,

    setTimeout( ()=>{ this.siguienteNivel(); //funciona sin problemas }, 500); ---> con arrow function, this sigue siendo nuestra clase Juego

    setTimeout( function(){ this.siguienteNivel(); //Uncaught TypeError: this.siguienteNivel is not a function, y si quito los parentesis no generar error y this toma otro valor }, 500); ---> this ya es el objeto Window y no se ejecuta siguienteNivel.

    Disculpa que te haga nuevamente esta pregunta, pero la verdad aquí no logro entender, por que uso tres variantes de las cuales estamos usando en todo el curso, pero veo que ocurre algo con el this, dependiendo del modo que use el setTimeou.

    Juan Jiménez

    Juan Jiménez

    studenthace 5 años

    La diferencia es que cuando se usa el paréntesis () se ejecuta la función y cuando no se usan los paréntesis () se está haciendo referencia a la función (como un objeto o una variable).

    • funciónEjemplo (); --> Se ejecuta

    • funciónEjemplo --> Referencia

Fundamentos de JavaScript 2018

Fundamentos de JavaScript 2018

JavaScript es un lenguaje de programación que se trabaja desde el navegador. Construye programas, conoce el entorno, los condicionales y las estructuras repetitivas. Aprende cuáles son y cómo se declaran las variables y las funciones de JS.

Fundamentos de JavaScript 2018
Fundamentos de JavaScript 2018

Fundamentos de JavaScript 2018

JavaScript es un lenguaje de programación que se trabaja desde el navegador. Construye programas, conoce el entorno, los condicionales y las estructuras repetitivas. Aprende cuáles son y cómo se declaran las variables y las funciones de JS.