Maison  >  Article  >  interface Web  >  Comment exécuter un appel de fonction à partir d’une chaîne en JavaScript ?

Comment exécuter un appel de fonction à partir d’une chaîne en JavaScript ?

DDD
DDDoriginal
2024-10-27 12:17:30645parcourir

How to Execute a Function Call from a String in JavaScript?

Invoquer un appel de fonction à partir d'une chaîne

En JavaScript, il est possible de convertir une chaîne représentant un appel de fonction en un véritable appel de fonction . Considérons le cas où nous avons une chaîne comme :

"clickedOnItem(" + t.parentNode.id + ")"

que nous voulons traduire en appel de fonction :

clickedOnItem(IdofParent);

Pour y parvenir, nous pouvons utiliser l'approche suivante :

<code class="javascript">var fn = window[settings.functionName];
if(typeof fn === 'function') {
    fn(t.parentNode.id);
}</code>

Dans cet extrait, nous récupérons d'abord la référence de fonction de l'objet window en utilisant la chaîne stockée dans settings.functionName. Si la fonction existe, nous l'invoquons avec les arguments souhaités.

Par exemple, si settings.functionName est défini sur "clickedOnItem", l'exécution du code entraînerait :

<code class="javascript">var fn = window["clickedOnItem"]; // Fetch the function reference
fn(t.parentNode.id); // Invoke the function</code>

Cela imite efficacement l'invocation manuelle de la fonction que nous recherchions. N'oubliez pas que cette approche est généralement mal vue en raison de problèmes potentiels de sécurité et de maintenabilité. Envisagez d'explorer des alternatives plus sûres, telles que l'utilisation du constructeur de fonction ou des fonctions fléchées, pour construire dynamiquement des appels de fonction.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn