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)