Maison > interface Web > js tutoriel > le corps du texte

Comment récupérer le nom d'une fonction en JavaScript ?

DDD
Libérer: 2024-10-26 05:42:03
original
435 Les gens l'ont consulté

How Can You Retrieve a Function's Name in JavaScript?

Accès aux noms de fonctions dans leur portée

La possibilité de récupérer le nom d'une fonction à partir de la fonction elle-même est une technique utile en JavaScript. Cependant, cela peut être difficile car les noms de fonctions ne sont pas facilement disponibles lorsque vous y accédez depuis l'intérieur.

Solution ES6 :

Dans ES6, accéder au nom d'une fonction est simple :

<code class="javascript">const getFunctionName = () => myFunction.name;</code>
Copier après la connexion

Solution ES5 :

Pour ES5, l'approche suivante est recommandée :

<code class="javascript">function getFunctionName(func) {
  const funcStr = func.toString();
  const name = funcStr.substring('function '.length, funcStr.indexOf('('));
  return name;
}</code>
Copier après la connexion

Utilisation de Function.caller ( Non recommandé) :

Function.caller fournit une solution non standard pour accéder au nom de l'appelant. Cependant, il doit être évité en raison de problèmes de compatibilité potentiels et de sa dépréciation en mode strict.

Solution basée sur Regex :

Une autre approche ES5 efficace consiste à utiliser une expression régulière :

<code class="javascript">const getFunctionName = (func) => /function\s+([a-zA-Z$][a-zA-Z$0-9]+)/.exec(func.toString())[1];</code>
Copier après la connexion

Exemple :

Utilisons l'extrait de code fourni comme exemple :

<code class="javascript">var ns.parent = function() {
  // at this point, i want to know who the child is that called the parent
  // ie
  console.log(getFunctionName(this));
}

var obj = new ns.parent.child();</code>
Copier après la connexion

Cela affichera : "newFunc" car newFunc est la fonction qui a appelé la fonction parent.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!