Saltar al contenido

Javascript: nombres de funciones dinámicas

No olvides que en las ciencias un problema casi siempere suele tener más de una soluciones, de igual modo aquí te enseñamos lo más óptimo y eficiente.

Solución:

He estado jugando con esto durante las últimas 3 horas y finalmente lo conseguí al menos algo elegante usando la nueva función como se sugiere en otros hilos:

/**
 * JavaScript Rename Function
 * @author Nate Ferrero
 * @license Public Domain
 * @date Apr 5th, 2014
 */
var renameFunction = function (name, fn) 
    return (new Function("return function (call)  return function " + name +
        " ()  return call(this, arguments) ; ;")())(Function.apply.bind(fn));
;   

/**
 * Test Code
 */
var cls = renameFunction('Book', function (title) 
    this.title = title;
);

new cls('One Flew to Kill a Mockingbird');

Si ejecuta el código anterior, debería ver el siguiente resultado en su consola:

Book title: "One Flew to Kill a Mockingbird"

window.example = function ()  alert('hello world') 
example();

o

name = 'example';
window[name] = function ()  ... 
...

o

window[name] = new Function('alert("hello world")')

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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