Maison  >  Article  >  interface Web  >  Comment obtenir le nom de la fonction en cours d'exécution en JavaScript ?

Comment obtenir le nom de la fonction en cours d'exécution en JavaScript ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-21 15:29:02421parcourir

How to Obtain the Running Function's Name in JavaScript?

Déchiffrer l'énigme : obtenir le nom de la fonction en cours d'exécution en JavaScript

Le concept de récupération du nom de la fonction en cours d'exécution a été une question brûlante pour les programmeurs naviguant dans JavaScript paysage. Cet article explore les possibilités et les aspects pratiques de cette tâche apparemment simple.

Limitations dans ES5 et versions ultérieures

À partir d'ES5, JavaScript ne fournit plus d'accès direct au nom de la fonction en cours d’exécution. Cette limitation provient de la tentative du langage d'empêcher les codes malveillants de manipuler la pile d'appels.

Accès au nom de la fonction dans les anciennes versions de JavaScript

Avant ES5, les développeurs pouvaient exploitez la propriété arguments.callee pour extraire le nom de la fonction appelante. Cependant, cette approche présentait quelques inconvénients :

  • La valeur renvoyée pouvait contenir des informations supplémentaires, telles qu'une étiquette de fonction anonyme.
  • Certains navigateurs nécessitaient une analyse supplémentaire pour isoler la fonction pure. name.

Analyse du nom de la fonction

Pour purifier le nom de la fonction de toute information supplémentaire, certaines implémentations JavaScript fournissent la propriété arguments.callee.name. Dans les cas où cette méthode n'est pas disponible, les développeurs peuvent utiliser la technique d'analyse suivante :

<code class="javascript">function DisplayMyName() {
  var myName = arguments.callee.toString();
  myName = myName.substr('function '.length);
  myName = myName.substr(0, myName.indexOf('('));

  alert(myName);
}</code>

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