elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  Una función en javascript
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Una función en javascript  (Leído 2,777 veces)
Ali Baba


Desconectado Desconectado

Mensajes: 310


Ver Perfil WWW
Una función en javascript
« en: 15 Mayo 2017, 16:48 pm »

Una vez vi en javascript algo así:

Código
  1. ! function(){}();

Y hasta el día de hoy no entiendo nada.


En línea

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.855



Ver Perfil WWW
Re: Una función en javascript
« Respuesta #1 en: 15 Mayo 2017, 17:01 pm »

Es una funcion que se ejecuta a si misma (opcionalmente, con los parámetros que le des).

Código
  1. var a = function(){
  2.    return 'hola';
  3. }();
  4.  
  5.  
  6. var b = function(a,b){
  7.    return a-b;
  8. }(5,3);
  9.  
  10. console.log(a); // hola
  11. console.log(b); // 2

PD: Si te preguntas por el uso que se le pueda dar,
http://stackoverflow.com/questions/17058606/why-using-self-executing-function

Saludos


« Última modificación: 15 Mayo 2017, 17:04 pm por #!drvy » En línea

erandros

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Una función en javascript
« Respuesta #2 en: 18 Mayo 2017, 16:50 pm »

Hora de demistificar:

Primero, estemos de acuerdo en que en javascript, podés declarar una función sin nombre.

Código
  1. function() { console.log('asd'); }
Podés, si querés, asignarla a una variable e invocar esa función luego
Código
  1. var myFunction = function() { console.log('asd'); }
  2. myFunction();
  3.  

Pero también, en el mundo libre de javascript, podés hacer cosas locas, como declarar una función sin nombre, e invocarla inmediatamente, esto es exactamente igual que el ejemplo anterior (sin el console.log) pero en una línea:

Código
  1. function(){}()

Lamentablemente, ese código no corre, por ciertas cuestions de sintaxis de javascript, para que corra tenés dos opciones:

Código
  1. (function(){})() //envolver la declaración de la función entre paréntesis
Código
  1. !function(){}() //anteponer un signo de exclamación

Ahora...

Por qué querrías declarar una función y llamarla inmediatamente? Por qué no poner el código así nomás en un script de html total se va a invocar de una.

Por una cuestión de prolijidad. Cuando definís una variable fuera de cualquier función, es visible globalmente. Cualquier otra parte del código puede acceder a esa variable. Y eso puede hacer que tu código sea poco robusto.

Pero, oh magia, cuando ponés variables dentro de funciones, esas variables solo se pueden acceder dentro de esas funciones. Y eso nos ayuda a modularizar el código.

En línea

dato000


Desconectado Desconectado

Mensajes: 3.034



Ver Perfil
Re: Una función en javascript
« Respuesta #3 en: 18 Mayo 2017, 21:20 pm »

Una vez vi en javascript algo así:

Código
  1. ! function(){}();

Y hasta el día de hoy no entiendo nada.

Debe ser una función recursiva, son horrendas, no entiendo los que dicen que son recomendables en terminos de rendimiento, sea en el lenguaje que sea, son demoledores para comer memoria así sea solo para una simple suma o imprimir un string.

No uses esa basura, ni te molestes en estudiarla, es mala praxis, y una perdida de tiempo y energia.
En línea


Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
funcion javascript
Desarrollo Web
qiqeroot 2 2,498 Último mensaje 5 Diciembre 2010, 19:11 pm
por Nakp
[javascript] llamar a funcion que se recibe por parametro de la funcion
Desarrollo Web
Graphixx 0 6,014 Último mensaje 24 Abril 2012, 19:36 pm
por Graphixx
Pasar funcion PHP a javascript
Desarrollo Web
blaknez root 1 1,762 Último mensaje 27 Julio 2014, 18:41 pm
por MinusFour
Duda funcion javascript
Desarrollo Web
rubcr 3 2,818 Último mensaje 30 Mayo 2020, 07:23 am
por .:Xx4NG3LxX:.
Duda con una funcion en javascript
Desarrollo Web
palacio29 2 2,469 Último mensaje 30 Mayo 2020, 16:01 pm
por palacio29
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines