Maison  >  Article  >  interface Web  >  Comment obtenir dynamiquement le nom de la fonction actuelle en JavaScript ?

Comment obtenir dynamiquement le nom de la fonction actuelle en JavaScript ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-21 15:27:30557parcourir

How to Dynamically Get the Name of the Current Function in JavaScript?

Obtention du nom de la fonction actuelle en JavaScript

Pouvez-vous accéder dynamiquement au nom de la fonction en cours d'exécution en JavaScript ?

Description du problème

Considérons l'exemple suivant :

<code class="javascript">myfile.js:

function foo() {
    alert(<my-function-name>);
    // pops-up "foo"
    // or even better: "myfile.js : foo"
}</code>

Le but est de récupérer le nom de la fonction et éventuellement son emplacement complet (filename:function-name ). Est-ce réalisable ?

Solution

Dans ES5 et versions ultérieures : Malheureusement, il n'existe aucun mécanisme intégré pour obtenir le nom de la fonction dans ES5 et versions ultérieures.

Dans les anciennes versions de JavaScript : Dans les versions antérieures de JavaScript, il était possible d'accéder au nom de la fonction à l'aide de arguments.callee. Cependant, cette approche peut nécessiter une analyse car la valeur renvoyée peut inclure des informations superflues.

Approche d'analyse :

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

    alert(myName);
}</code>

Source : [ Javascript - obtenir le nom de la fonction actuelle](https://stackoverflow.com/questions/4267180/javascript-get-current-function-name)

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