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


 


Tema destacado: Java [Guía] Patrones de diseño - Parte 1


+  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 425 veces)
magodiesan

Desconectado Desconectado

Mensajes: 172


ART.EST.IMPERIUS.ORBIS.UNIVERSUS


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

Una vez vi en javascript algo así:

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

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


En línea

Arte Es El Imperio de la Orbita del Universo
#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 4.564



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

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 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 »

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.021


Ciencia


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

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


"La cultura comercial está llena de informaciones erróneas y evasivas a expensas del consumidor.
No se espera que preguntemos.

No piense. Compre."
Carl Sagan
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Funcion left en javascript
Programación General
eL_iNdIo 0 542 Último mensaje 25 Abril 2005, 09:50
por eL_iNdIo
FUNCION javascript
Desarrollo Web
Wdeah 2 671 Último mensaje 3 Junio 2005, 20:39
por Wdeah
funcion javascript
Desarrollo Web
aRTeX 1 541 Último mensaje 8 Junio 2005, 00:26
por Morris
funcion javascript
Desarrollo Web
qiqeroot 2 943 Último mensaje 5 Diciembre 2010, 19:11
por Nakp
[javascript] llamar a funcion que se recibe por parametro de la funcion
Desarrollo Web
Graphixx 0 3,013 Último mensaje 24 Abril 2012, 19:36
por Graphixx
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines