ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScriptで呼び出し元関数の行番号とソースURLを取得するにはどうすればよいですか?

JavaScriptで呼び出し元関数の行番号とソースURLを取得するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-20 21:52:02642ブラウズ

How to Get Line Number and Source URL of Caller Function in JavaScript?

JavaScript での呼び出し元関数の行番号とソース URL の取得

JavaScript メソッドの呼び出し元の行番号とソース URL を特定できます。デバッグの目的や実行フローのトレースに役立ちます。直接の組み込みメソッドはありませんが、Error オブジェクトの stack プロパティを利用してこの情報を取得できます。

呼び出し元関数の行番号の取得

取得するには呼び出し元関数が呼び出された行番号を調べると、Error オブジェクトの stack プロパティを解析できます。

<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);
console.log(clean);</code>

この例では、エラーをスローして、呼び出しスタックを含む Error オブジェクトを取得します。次に、スタックを改行で分割し、通常は呼び出し元関数の情報が含まれる 4 行目 (インデックス 3) を選択します。行番号を抽出するために先頭の "at" 文字列をトリミングします。

呼び出し元関数のソース URL の取得

残念ながら、関数のソース URL を取得する簡単な方法はありません。関数自体の内部から呼び出し元関数を呼び出します。ただし、コンソール ログを使用した回避策を使用できます。

<code class="js">function logCallerInfo() {
  console.log("%c", "color: white; background: #000; padding:2px; line-height: 1.5em;",
    err.stack.split("\n")[4]);
}

logCallerInfo();</code>

この例では、コンソール ログを使用して呼び出し元関数の情報をカスタム スタイルで表示します。スタックの 4 行目 (インデックス 3) には、呼び出し元関数のソース URL が含まれている必要があります。コンソール出力を検査すると、必要な情報が明らかになります。

これらのメソッドは呼び出し元関数の行番号とソース URL を概算する方法を提供しますが、すべての状況で完全に信頼できるわけではないことに注意することが重要です。

以上がJavaScriptで呼び出し元関数の行番号とソースURLを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。