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
Patricia Arquetteoriginal
2024-12-29 20:44:12950parcourir

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'?
}

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()}`);
}

Solution moderne

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

function Hello() {
  console.log(new Error().stack);
}

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:
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