Evaluar una función
-
27-10-2019 - |
Pregunta
Estoy tratando de crear una pequeña biblioteca que pueda enviar un objeto (que tenga funciones) y algunos datos, y args, y enviará el objeto, los datos y los args a un proceso de trabajadores que luego evaluará el objeto para reconstruir el funciones (de cuerdas a funciones)
Actualmente tengo esto:
JSON.stringify(object, function(key, val) {
if typeof val === 'function' { return val + '' }
return val
});
Esta función triunfará un objeto que incluye funciones.
En mi trabajador estoy tratando de deshacer este proceso.
He probado lo siguiente:eval(object)
También he intentado implementar JSON.Parse con el intento de evaluar () cada función cuando me encuentro con una.
Yo también lo he intentado eval("return " + object.function)
es posible?
Solución
Probablemente quieras:
eval("(" + object.function + ")");
No puede poner una declaración de regreso en algún lugar.
function() {}
se evalúa en función declaración, que falla porque no tiene nombre. Dado que los datos a analizar representan una función expresión, me gusta var f = function() {}
, necesitas poner ()
A su alrededor, para que se evalúe como una expresión.