Maison > interface Web > js tutoriel > Comment puis-je identifier de manière fiable la fonction de l'appelant en JavaScript ?

Comment puis-je identifier de manière fiable la fonction de l'appelant en JavaScript ?

Patricia Arquette
Libérer: 2024-12-29 20:44:12
original
972 Les gens l'ont consulté

How Can I Reliably Identify the Caller Function in JavaScript?

Identification de la fonction appelante en JavaScript

En JavaScript, la propriété caller d'une fonction permet de récupérer le nom de la fonction qui l'a appelée . Cependant, cette propriété est considérée comme obsolète et n'est plus recommandée.

function main() {
  Hello();
}

function Hello() {
  // How do you find out the caller function is 'main'?
}
Copier après la connexion

Trouver la pile d'appels

Pour déterminer la pile d'appels, vous pouvez utiliser arguments.callee .caller.toString(), mais ceci est également obsolète. Notez que cette solution n'est pas standard et peut ne pas fonctionner dans tous les navigateurs ou implémentations JavaScript.

Solution obsolète

function Hello() {
  alert(`caller is ${arguments.callee.caller.toString()}`);
}
Copier après la connexion

Solution moderne

Une solution plus moderne consiste à utiliser de nouveaux Error().stack.

function Hello() {
  console.log(new Error().stack);
}
Copier après la connexion

Cela affichera la trace de la pile, qui inclut le nom de la fonction appelante.

Remarque importante :

La propriété caller et arguments.callee.caller.toString() sont obsolètes et ne doivent pas être utilisées pour le code de production. Utilisez toujours la nouvelle solution Error().stack pour obtenir la pile d'appels.

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 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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal