2012-09-29 48 views

Respuesta

21

JSON no puede stringify funciones en absoluto, que las trata igual que undefined o null valores. Puede verificar el algoritmo exacto en EcmaScript 5.1 §15.12.3, ver también description at MDN.

Sin embargo, usted puede, por supuesto, stringify expresión de función por colada a una cadena, intente

console.log("" + function(){console.log('foobar');}) 
+0

Hola Bergi, pasé mi función de casteado a mi trabajador web, sin embargo, ¿cómo puedo volver a convertirme en js? JSON.parse? –

+0

@TedFitzpatrick 'eval'. Por supuesto, solo funciona para funciones sin variables gratuitas. – Bergi

+0

Gracias Bergi. Estoy pasando una expresión de función de constructor que tiene declaraciones de funciones internas. Cuando eval() obtengo un "token inesperado" ("Intenté eliminar el bloque" function() {} "circundante, pero seguí recibiendo el error ... ¿las cadenas evaluadas pueden contener funciones? –

4

JSON no tiene medios para representar una función. Es un formato de datos diseñado para la simplicidad y la compatibilidad en todos los idiomas (y una función es lo último que será compatible con varios idiomas).

A partir de los documentos de JSON.stringify:

Si no está definida, una función o un valor XML se encuentra durante la conversión o bien es omitida (cuando se encuentra en un objeto) o censurado a nulo (cuando se se encuentra en una matriz).

Cuestiones relacionadas