Regardons d'abord une fonction de JS
Fonction JavaScript eval()
Définition et utilisation
La fonction eval() évalue une chaîne et exécute le code JavaScript qu'elle contient.
grammaire
évaluation (chaîne)
Description des paramètres
chaîne requise. Chaîne à évaluer qui contient une expression JavaScript à évaluer ou une instruction à exécuter.
valeur de retour
La valeur obtenue en évaluant la chaîne (le cas échéant).
illustrer
Cette méthode n'accepte que les chaînes brutes comme paramètres. Si le paramètre de chaîne n'est pas une chaîne brute, la méthode retournera inchangée. Par conséquent, veuillez ne pas transmettre d'objets String en tant que paramètres à la fonction eval().
Les implémentations ECMAScript permettent de lever une exception EvalError si une tentative est faite pour remplacer la propriété eval ou attribuer la méthode eval() à une autre propriété et l'appeler via cette propriété.
Lancer
S'il n'y a aucune expression ou instruction légale dans les paramètres, une exception SyntaxError est levée.
Si eval() est appelé illégalement, une exception EvalError est levée.
Si le code Javascript passé à eval() génère une exception, eval() transmettra l'exception à l'appelant.
Conseils et remarques
Astuce : Bien que eval() soit très puissant, il est rarement utilisé dans la réalité.
Exemple
Exemple 1
Dans cet exemple, nous appliquerons eval() à plusieurs chaînes et verrons quels résultats sont renvoyés :
Copiez le code comme suit :
<script type="text/javascript">
eval("x=10;y=20;document.write(x*y)")
document.write(eval("2+2"))
varx=10
document.write(eval(x+17))
</script>
Sortir:
200
4
27
Exemple 2
Regardez ce que renvoie eval() dans d'autres cas :
Copiez le code comme suit :
eval("2+3") // renvoie 5
var myeval = eval; // Une exception EvalError peut être levée
myeval("2+3"); // Une exception EvalError peut être levée
Vous pouvez utiliser le code suivant pour vérifier si les paramètres de eval() sont légaux :
Copiez le code comme suit :
essayer {
alert("Résultat :" + eval(prompt("Entrez une expression :","")));
}
capture (exception) {
alerte (exception);
}
La première méthode consiste à utiliser eval dans js
Ce qui suit est un exemple écrit par moi-même
Copiez le code comme suit :
appel("showmsg");
appel de fonction (nom de fonction) {
eval("this."+nomfonction+"()");
}
fonction showmsg(){
alerte("succès");
}
eval peut automatiquement reconnaître la chaîne que vous avez épissée comme méthode et l'appeler.
Mais les inconvénients sont également énormes. Imaginez que quelqu'un puisse appeler n'importe laquelle de vos méthodes en changeant le nom de la méthode dans laquelle vous l'appelez.
La deuxième méthode est principalement utilisée comme méthode auto-définie
Principalement parce que la deuxième méthode nécessite une manière spécifique d'écrire
Copiez le code comme suit :
appel de fonction (nom de fonction) {
showmsgs["showmsg"]();
}
var showmsgs = { showmsg : fonction () {
alerte("succès");
}
}
appel("showmsg");