Para los que aprendimos un lenguaje Orientado a Objetos antes que javascript algunas veces desconocemos la naturaleza dinámica de este lenguaje, y una de las cosas naturales es poder guardar una función en una variable e igual enviarse esa función como parámetro.
Existen dos formas de hacerlo y la primera es haciendo una función anónima:
//creamos una función que recorre una lista
function recorreLista(funcionPasadaXParametro){
//recorremos el arreglo/lista
//utilizamos la palabra reservada this para referirnos al objeto que es dueño de este metodo.
for(i=0;i<this.length;i++){
//ejecutamos la función pasada como parametro, la cual se le envia el elemento actual
funcionPasadaXParametro(this[i]);
}
}
//creamos arreglo
arreglo=new Array(1,3,4,5);
//asignamos la funcion al metodo recorre
arreglo.recorre=recorreLista;
//ejecutamos la función pasandole una función anonima
arreglo.recorre(
//FORMA 1 para pasar una función como paramétro
//creamos la función anonima
function(elemento){
//mostramos el elemento actual
alert(elemento)
}
);
La segunda forma de pasar una función como parámetro, es pasando una función existente.
//creamos una función la cual enviaremos
function multiplicaX10(elemento){
alert(elemento*10);
}
//FORMA 2 para pasar una función como parametro
arreglo.recorre(multiplicaX10);
Nota: Recuerden no poner los paréntesis cuando se pasa una función ya existente como parámetro, el hecho de poner los paréntesis ejecuta la función.
