Maison >interface Web >js tutoriel >Comment déterminer les détails de la fonction appelante en JavaScript ?

Comment déterminer les détails de la fonction appelante en JavaScript ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-20 21:53:02315parcourir

How to Determine the Details of the Caller Function in JavaScript?

Découverte des détails de la fonction de l'appelant en JavaScript

Déterminer l'origine d'un appel de fonction peut fournir des informations précieuses pour le débogage et l'analyse. Cet article explique comment obtenir le numéro de ligne et l'URL source de la fonction de l'appelant en JavaScript.

Obtention du numéro de ligne de l'appelant

Le code fourni récupère efficacement le nom de la fonction appelante à l’aide de l’objet arguments.callee.caller. Toutefois, l’obtention du numéro de ligne nécessite une approche différente. Une méthode consiste à utiliser l'objet Error :

<code class="js">function getErrorObject() {
  try {
    throw Error('');
  } catch (err) {
    return err;
  }
}

var err = getErrorObject();
var caller_line = err.stack.split("\n")[4];
var index = caller_line.indexOf("at ");
var clean = caller_line.slice(index + 2, caller_line.length);</code>

La propriété stack de l'objet Error contient une trace de pile qui inclut les numéros de ligne et les URL sources des appels de fonction qui ont conduit à l'erreur. En analysant cette chaîne, vous pouvez extraire le numéro de ligne de la fonction appelante.

Récupération de l'URL source de l'appelant

De même, l'URL source peut être acquise à partir de la pile propriété de l'objet Error :

<code class="js">var caller_url = err.stack.split("\n")[4];
var index = caller_url.indexOf("(");
var clean = caller_url.slice(index + 1, caller_url.length - 1);</code>

La partie de la trace de pile entre parenthèses contient l'URL source de la fonction appelante.

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