usar funciones javaScript


Por lo general, en la mayor parte de los manuales se indica que las funciones en javaScript deben definirse en el formato clásico:

function miFuncion ( variable1, variable2) {
   // Código
}

Sin embargo las funciones en javaScript son mucho más versatiles y permiten ser definidas en cualquier momento, incluso (y esta es la parte brillante) como variables y en los mismos ámbitos que las variables…

var miFuncion = function ( variable1, variable2) {
   // Código
}

¿Por qué es tan importante esta modalidad para declarar las funciones? Básicamente, porque nos permite entender las funciones como procesos que podemos definir y redefinir en cualquier momento según nuestras necesidades. Seguidamente mostraré unos cuantos ejemplos de como sacar partido a estas carácteristicas…

Funciones redefinibles

Declaradas de esta forma las funciones pueden ser redefinidas en cualquier momento.

var operacionMatematica = function ( variable1, variable2) {
   return variable1 + variable2;
}

// Uso de operacionMatematica() como sumador...

operacionMatematica = function ( variable1, variable2) {
   return variable1 * variable2;
}

// Uso de operacionMatematica() como multiplicador...

Definiendo metodos de objetos

Al ser las propiedades de los objetos como variables, la definición de métodos de esta forma se hace mucho más sencilla:

En javascript Literal

var miObjeto = {
   propiedad1 : "valor 1",
   metodo1 : function (variable1) {
      //código...
   }
}

O sobre objetos ya definidos…

var miObjeto = {...}

miObjeto.nuevoMetodo = function () {
   // código
}

En lugar de codigos javaScript lanzados desde strings

Resultan muy engorrosas esas opciones de javaScript que te permiten incluir como string y codigo javaScript que luego será ejecutado. Es mucho más cómodo definir como función ese parametro y que sea esta función la que sea lanzada.

// en vez de usar...
setTimeout( "codigo javascript",2000);
// usamos...
setTimeout( function(){
  //codigo
},1000);

Pasando procesos a otras funciones

Sobretodo en procesos de callback (acciones a realizar cuando la función acabe) resulta muy util no tener que definir la función que pasamos y en vez de eso definir la función como si fuese una variable de entrada de la primera función.

var miFuncion = function ( variable1, procesoCallBack) {
   // Código
  var x=1; // Suponiendo que el codigo defina x
  var y=2; // Suponiendo que el codigo defina y
  procesoCallBack( x , y );
}

miFuncion( "valor cualquiera", function (variable1,variable2 ) {
 alert( x + y );
};

// Se ejecutaría el codigo de miFunción y al terminar
// se mostraría un alert que diría "3".

Estas funciones se hacen realmente interesantes como callBacks para procesos Ajax, con restrasos en el tiempo o con animaciones.


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *