Maison  >  Article  >  interface Web  >  Comment puis-je récupérer des informations sur les fonctions d'appelant JavaScript ?

Comment puis-je récupérer des informations sur les fonctions d'appelant JavaScript ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-20 21:57:031004parcourir

How Can I Retrieve Information About JavaScript Caller Functions?

Informations sur l'appelant JavaScript

En JavaScript, il est possible d'obtenir des détails sur la fonction appelant une autre fonction.

Nom de la fonction de l'appelant

Vous avez déjà mentionné l'approche permettant de récupérer le nom de la fonction de l'appelant :

var callerFunc = arguments.callee.caller.toString();
callerFuncName = (callerFunc.substring(callerFunc.indexOf("function") + 8, callerFunc.indexOf("(")) || "anoynmous")

Numéro de la ligne de l'appelant

Pour extraire le numéro de ligne à partir de laquelle la méthode a été appelée, vous pouvez utiliser l'objet Error :

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);

Dans ce code, la fonction getErrorObject génère un objet error. En accédant à la propriété stack, vous pouvez récupérer une trace de pile, qui contient des informations sur le contexte d'appel actuel.

URL de la source du fichier de l'appelant

Malheureusement, obtenir directement le JavaScript L'URL source du fichier à partir de laquelle la méthode a été appelée n'est pas possible dans la plupart des implémentations JavaScript.

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