En JavaScript, accéder au nom de la fonction en cours d'exécution est une exigence courante pour le débogage et la gestion des erreurs. Comprendre comment y parvenir peut être bénéfique dans divers scénarios de programmation.
Cependant, dans ES5 et les versions ultérieures de JavaScript, l'accès direct au nom de la fonction n'est pas disponible. Cela signifie que les fonctions telles que arguments.callee et arguments.callee.name ne sont plus prises en charge.
Dans les anciennes versions de JavaScript (pré-ES5), il était possible d'obtenir le nom de la fonction à l'aide d'arguments. appelé comme indiqué ci-dessous :
<code class="js">function myFunc() { console.log(arguments.callee.name); // "myFunc" }</code>
Cependant, dans ES5 et versions ultérieures, arguments.callee n'est plus considéré comme un moyen fiable ou standard de récupérer le nom de la fonction. Il est recommandé d'éviter son utilisation dans le code JavaScript moderne.
Analyse du nom de la fonction
Dans les anciennes versions de JavaScript où arguments.callee est disponible, vous devrez peut-être analyser le nom de la fonction car il peut inclure des informations supplémentaires :
<code class="js">function myFunc() { var funcName = arguments.callee.toString(); funcName = funcName.substr('function '.length); funcName = funcName.substr(0, funcName.indexOf('(')); console.log(funcName); // "myFunc" }</code>
Bien que cette méthode puisse être efficace dans certaines implémentations, il est important de noter qu'elle repose sur des détails spécifiques à l'implémentation et peut ne pas fonctionner de manière cohérente dans toutes cas.
Résumé
Dans JavaScript moderne (ES5 et supérieur), il n'est pas recommandé de s'appuyer sur l'accès dynamique au nom de la fonction. Cependant, dans les anciennes versions de JavaScript, l'approche arguments.callee peut être utilisée avec prudence, en comprenant ses limites potentielles.
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!