Si ahora pasamos esta cadena como argumento a la función eval () como se muestra a continuación, tendríamos un objeto (ejecutable) JavaScript utilizable (este es el segundo paso): eval (miCadena); El eval () devuelve un objeto JavaScript ejecutable literal. Es una práctica normal, para asignar el literal de objeto en la página del navegador, a una variable global. Por lo tanto, es normal que haya una declaración como: myGVar = eval (miCadena); Esta variable global, que ahora es un objeto puede ser el acceso desde cualquier parte del guión.
Esto es efectivamente lo que se puede tener: myGVar = {propiedad1: "punto", myArray = ["punto uno", "elemento de dos", "punto tres"], myFn: nueva función ("x", "y", "z var = x + y; volver z * z;")} Si desea que el valor de la propiedad del objeto, propiedad1, escribiría: myGVar.property1; Si desea que el valor de la matriz de objetos en el índice 1, escribiría: myGVar.myArray [1]; Si desea ejecutar el método dentro del objeto, debería escribir algo como, myGVar.myFn (2,3); donde 2, 3 son argumentos para el método myFn (función).
No voy a hacer ninguna más explicación que lo que he hecho hasta ahora en relación con la función eval () y el archivo JSON. La Especificación Revisited Esto es lo que la especificación JavaScript dice acerca de la función eval: El argumento de la función eval es una cadena. Si la cadena representa una expresión, eval evalúa la expresión. Si el argumento representa una o más sentencias de JavaScript, eval ejecuta las declaraciones. No llame a eval para evaluar una expresión aritmética; JavaScript evalúa las expresiones aritméticas automáticamente.
Si usted construye una expresión aritmética como una cadena, puede utilizar eval para evaluarla en un momento posterior. Si el argumento de eval no es una cadena, eval devuelve el argumento sin cambios. Echemos un vistazo a las frases. La primera frase es "El argumento de la función eval es una cadena." Ahora hemos hecho tantas cosas con la función eval () sin necesidad de utilizar la cadena