¡Amigos hola! ¿Cuándo usar funciones declarativas y cuándo usar funciones anónimas?

Juan David Becerra Grajales

Juan David Becerra Grajales

Pregunta
studenthace 4 años

¡Amigos hola! ¿Cuándo usar funciones declarativas y cuándo usar funciones anónimas?

9 respuestas
para escribir tu comentario
    Felipe Schneeberger

    Felipe Schneeberger

    studenthace 4 años

    Creo que es mas facil entender donde se ocupan las funciones anonimas, ya que comunmente si vienes de otro lenguaje de programación, la mayoria es declarativo.

    //Esto es una función declarada en la libreria de Mongo, para bsucar datos de una colección collection.find({}, //esta funcion es anonima y es el callback de la funcion find() function(error, result) { if (!error) { console.log(`Completado con exito: ${result.ok}`); } else { console.log(`Ocurrio un error: ${error}`); } }, );

    Espero que se entienda.

    Christopher Eder Chantres Justo

    Christopher Eder Chantres Justo

    studenthace 4 años

    Hola Juan David, en esta clase lo explican bien sobre cuándo usar las funciones declarativas y cuándo usar las funciones anónimas

    Fabricio Micheli

    Fabricio Micheli

    studenthace 4 años

    Bueno la principal diferencia es el hoisting, en el caso de las funciones declaradas se cargan siempre al inicio del programa para que estén disponibles en cualquier momento del mismo. En el caso de las funciones como expresión, solamente están disponibles una vez que se declaran ya que están asociadas a una variable que nos sirve de puntero para la ejecución de la función. Además, como están declaradas en el ámbito de una variable, las mismas son capaces de conservar las variables declaradas dentro de la función (en el ámbito de la misma). También las funciones como expresión son ventajosas por las siguientes razones:

    • Como closures

    • Como argumentos de otras funciones

    • Como (IIFE) o sea como expresiones de función que se invocan de manera inmediata.

    Ederson Felipe Lopez Bolivar

    Ederson Felipe Lopez Bolivar

    studenthace 4 años

    En el lo basico sirve para lo mismo , asi que no importa mucho cual elijas , al final son funciones . En temas basicos su unica diferencia es el hoisting

    Otro criterio puede ser la legibilidad , en casos como los callbacks , eventos de html , en estos casos las funciones expresivas son mejor porque te evita escribir demás caracteres lo que lo hace más legible.

    En temas algo avanzados con arrow functions existen cosas como que el contexto de THIS cambia dependiendo de la forma en la creemos la función. (trato de explicarlo lo mas simple pero es complejo)

    Uriel Barranco Robles

    Uriel Barranco Robles

    studenthace 4 años

    @Clair He leido sobre el tema, pero no he encontrado si hay casos en concreto donde seria mas conveniente utilizar una u otra. Una desventaja que se me ocurre pero aun no he probado, es que si a esa variable despues le asignamos un valor, entonces la funciona anonima se desecharia y ya no la podriamos utiilizar. Es solo una teoria que el dia de mañana probare. Aunque seguire investigando o si alguien con mas experiencia nos ayuda seria genial!!!!

    Cristian Mauricio Cavanzo Arias

    Cristian Mauricio Cavanzo Arias

    studenthace 4 años

    @uribarranco Si eso quedo claro, pero hay casos especiales para usar cada una de ellas?

    Uriel Barranco Robles

    Uriel Barranco Robles

    studenthace 4 años

    En la clase 6 que es una lectura te explica la diferencia en concreto de los dos tipos de funciones:

    Diferencias: A las funciones declarativas se les aplica hoisting, y a la expresión de función, no. Ya que el hoisting solo se aplica en las palabras reservadas var y function.

    Lo que quiere decir que con las funciones declarativas, podemos mandar llamar la función antes de que ésta sea declarada, y con la expresión de función, no, tendríamos que declararla primero, y después mandarla llamar.

    Cristian Mauricio Cavanzo Arias

    Cristian Mauricio Cavanzo Arias

    studenthace 4 años

    Tengo la misma duda

Curso Básico de JavaScript [Empieza Gratis]

Curso Básico de JavaScript [Empieza Gratis]

Conoce los conceptos clave del lenguaje de programación que se está comiendo al mundo. Aprende qué es una variable, una función, un objeto y dónde se guardan esos valores. Descubre qué es Scope y cómo se utilizan los loops. Obtén las herramientas para saber cómo tomar decisiones y validar acciones. En este curso, darás el primer paso para empezar tu carrera como desarrollador.

Curso Básico de JavaScript [Empieza Gratis]
Curso Básico de JavaScript [Empieza Gratis]

Curso Básico de JavaScript [Empieza Gratis]

Conoce los conceptos clave del lenguaje de programación que se está comiendo al mundo. Aprende qué es una variable, una función, un objeto y dónde se guardan esos valores. Descubre qué es Scope y cómo se utilizan los loops. Obtén las herramientas para saber cómo tomar decisiones y validar acciones. En este curso, darás el primer paso para empezar tu carrera como desarrollador.