Reemplazar partes de funciones javascript


Hemos visto como Reescribir funciones en javascript pero a veces reescribir una función entera no es lo más adecuado. Actualmente me encuentro con la necesidad de alterar ciertas partes de funciones enormes que son llamadas como servicios web con sus variables y sesiones. En definitiva, que esas funciones ni siquiera son siempre iguales para cada usuario que las carga.

Para solucionar estos problemas he creado una función que es capaz de reemplazar parte de los textos de las funciones sin alterar el resto de la definición. Dejo aquí el código:

replaceInFunction = function ( functionName, search, replace)
{
	theFunction = eval(functionName).toString();
	eval( functionName + "= function " + theFunction.substring(theFunction.indexOf("(")).replace(search,replace) );
}

Esta función nos da 3 argumentos para usarla:

  • functionName : es el nombre de nuestra función, la que queremos alterar.
  • search : el fragmento buscado
  • replace : el texto por el que se reemplazará

Para hacer el reemplazo se usa la función replace() así que no debería dar demasiados problemas a nadie.

Un ejemplo de su uso…

// definimos la función...
function showMe ( variable )
{ 
	document.write( variable );
}

showMe("hello world"); 
// --> escribe "hello world" en pantalla

replaceInFunction("showMe","document.write","alert"); 

showMe("hello world"); 
// --> lanza un alert que diga "hello world"

Una respuesta a “Reemplazar partes de funciones javascript”

Responder a Pedro Cancelar la respuesta

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