Vejamos primeiro uma função de JS
Função de avaliação JavaScript()
Definição e uso
A função eval() avalia uma string e executa o código JavaScript dentro dela.
gramática
avaliação(string)
Descrição do parâmetro
sequência obrigatória. Uma string a ser avaliada que contém uma expressão JavaScript a ser avaliada ou uma instrução a ser executada.
valor de retorno
O valor obtido avaliando a string (se houver).
ilustrar
Este método aceita apenas strings brutas como parâmetros. Se o parâmetro string não for uma string bruta, o método retornará inalterado. Portanto, não passe objetos String como parâmetros para a função eval().
As implementações ECMAScript permitem que uma exceção EvalError seja lançada se for feita uma tentativa de substituir a propriedade eval ou atribuir o método eval() a outra propriedade e chamá-lo por meio dessa propriedade.
Lançar
Se não houver expressões ou instruções legais nos parâmetros, uma exceção SyntaxError será lançada.
Se eval() for chamado ilegalmente, uma exceção EvalError será lançada.
Se o código Javascript passado para eval() gerar uma exceção, eval() passará a exceção para o chamador.
Dicas e notas
Dica: Embora eval() seja muito poderoso, raramente é usado no uso real.
Exemplo
Exemplo 1
Neste exemplo, aplicaremos eval() a diversas strings e veremos quais resultados são retornados:
Copie o código do código da seguinte forma:
<script type="texto/javascript">
eval("x=10;y=20;document.write(x*y)")
documento.write(eval("2+2"))
varx=10
documento.write(eval(x+17))
</script>
Saída:
200
4
27
Exemplo 2
Veja o que eval() retorna em outros casos:
Copie o código do código da seguinte forma:
eval("2+3") // retorna 5
var myeval = eval; // exceção EvalError pode ser lançada
myeval("2+3"); // Exceção EvalError pode ser lançada
Você pode usar o seguinte código para verificar se os parâmetros de eval() são legais:
Copie o código do código da seguinte forma:
tentar {
alert("Resultado:" + eval(prompt("Digite uma expressão:","")));
}
pegar(exceção) {
alerta(exceção);
}
O primeiro método é usar eval em js
A seguir está um exemplo escrito por mim
Copie o código do código da seguinte forma:
call("showmsg");
chamada de função(nomedafunção){
eval("este."+nomedafunção+"()");
}
função mostrarmsg(){
alerta("sucesso");
}
eval pode reconhecer automaticamente a string que você uniu como um método e chamá-la.
Mas as desvantagens também são enormes. Imagine que alguém possa chamar qualquer um dos seus métodos alterando o nome do método onde você o chama.
O segundo método é usado principalmente como um método autodefinido
Principalmente porque o segundo método requer uma maneira específica de escrever
Copie o código do código da seguinte forma:
chamada de função(nomedafunção) {
showmsgs["showmsg"]();
}
var showmsgs={showmsg:função(){
alerta("sucesso");
}
}
call("showmsg");