Así que la versión corta, lo que no entiendo es esta línea de código:¿función vacía de Javascript? Qué significa eso?
(new Function("paper", "window", "document", cd.value)).call(paper, paper);
La versión larga, mira a estas funciones:
window.onload = function() {
var paper = Raphael("canvas", 640, 480);
var btn = document.getElementById("run");
var cd = document.getElementById("code");
(btn.onclick = function() {
paper.clear();
paper.rect(0, 0, 640, 480, 10).attr({fill: "#fff", stroke: "none"});
try {
(new Function("paper", "window", "document", cd.value)).call(paper, paper);
} catch (e) {
alert(e.message || e);
}
})();
};
Este código es de Raphael parque infantil, el cual significa que implementa la biblioteca raphael. Por lo que la línea de código en la parte superior que no entiendo (que está dentro de la expresión try/catch), supone que copiar el código que el usuario ingrese que se almacena en el interior cd.value en la función. Pero, ¿cómo es posible?
se puede visitar la página aquí: http://raphaeljs.com/playground.html