Reescribir funciones en javascript


Una de las cosas que me gustan de javascript es que casi todo acaba definido como variable. Para grandes desarrollos es un engorro pero para lo que solemos usarlo va realmente bien. Las funciones no son una excepción a esta característica y son siempre accesibles como variables, así que al ser variables pueden ser redefinidas.

Imaginemos que tenemos esta inutil funcion bien definida en una libreria que no podemos editar:

function showMe ( variable )
{ 
	document.write( variable );
}

Y queremos que en vez de hacer un document.write empiece a mostrar datos con un alert. La forma más segura de conseguirlo es redefiniendo la función en lenguaje literal:

showMe = function ( variable )
{ 
	alert( variable );
}

Al tratar la función como variable no vamos a tener ningún problema y está quedará redefinida.

Un ejemplo completo:

function showMe ( variable )
{ 
	document.write( variable );
}
showMe("hello world"); 
// --> escribe "hello world" en pantalla

// ...
// varias líneas de código más adelante
// ...

showMe = function ( variable )
{ 
	alert( variable );
}
showMe("hello world"); 
// --> lanza un alert que diga "hello world"


Deja una respuesta

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