Por isso, é normal ter uma declaração como: myGVar = eval (myString); Esta variável global, que agora é um objeto pode ser acessado de qualquer lugar do script. Este é efectivamente o que você teria: myGVar = {property1: "um item", myArray = ["um item", "número dois", "item de três"], myFn: nova função ("x", "y", "var z = x + y; retornar z * z;")} Se você quiser que o valor da propriedade do objeto, property1, você deverá digitar: myGVar.property1; Se você quiser que o valor objeto de matriz no índice 1, você deverá digitar: myGVar.
myArray [1]; Se você quiser executar o método dentro do objeto, você deve digitar algo como, myGVar.myFn (2,3); onde 2, 3 são argumentos para o método myFn (função). Eu não vou fazer mais nenhuma explicação do que o que eu fiz até agora a respeito da função eval () eo arquivo JSON. A especificação Revisited Isto é o que a especificação JavaScript diz sobre a função eval: O argumento da função eval é uma string. Se a string representa uma expressão, eval avalia a expressão. Se o argumento representa uma ou mais declarações de JavaScript, eval executa as declarações.
Não chame eval para avaliar uma expressão aritmética; JavaScript avalia expressões aritméticas automaticamente. Se você construir uma expressão aritmética como uma string, você pode usar eval para avaliá-lo em um momento posterior. Se o argumento de eval não é uma string, eval retorna o argumento inalterado. Vejamos as frases. A primeira frase é "o argumento da função eval é uma cadeia." Agora, temos feito muitas coisas com a função eval () sem usar a seqüência de caracteres como uma variável independente. (eval e eval () são a mesma coisa nesta série).
Na verdade, nós não conseguimos usar seqüência de caracteres como um argumento independente: Nós consideramos literais; string não tem funcionado como literal. Nós consideramos variáveis, cujos valores são strings literais; isso não tem funcionado. Essas variáveis não funcionam no interior do argumento. Vamos apenas ser paciente