>웹 프론트엔드 >JS 튜토리얼 >JavaScript에서 호출자 함수의 행 번호와 소스 URL을 얻는 방법은 무엇입니까?

JavaScript에서 호출자 함수의 행 번호와 소스 URL을 얻는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-20 21:52:02718검색

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

JavaScript에서 호출자 함수의 행 번호 및 소스 URL 얻기

JavaScript 메서드가 호출된 행 번호와 소스 URL을 확인하면 디버깅 목적과 실행 흐름 추적에 유용합니다. 직접 내장된 메서드는 없지만 Error 개체의 스택 속성을 활용하여 이 정보를 검색할 수 있습니다.

발신자 함수 줄 번호 가져오기

얻으려면 호출자 함수가 호출된 줄 번호를 사용하면 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 개체를 검색하기 위해 오류를 발생시킵니다. 그런 다음 스택을 줄 바꿈으로 분할하고 일반적으로 호출자 함수 정보가 포함된 네 번째 줄(인덱스 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>

이 예에서는 콘솔 로깅을 사용하여 호출자 함수 정보를 사용자 정의 스타일로 표시합니다. 스택의 네 번째 줄(색인 3)에는 호출자 함수의 소스 URL이 포함되어야 합니다. 콘솔 출력을 검사하면 원하는 정보가 드러납니다.

이러한 방법은 호출자 함수 줄 번호와 소스 URL을 대략적으로 추정하는 방법을 제공하지만 모든 상황에서 완전히 신뢰할 수는 없다는 점에 유의하는 것이 중요합니다.

위 내용은 JavaScript에서 호출자 함수의 행 번호와 소스 URL을 얻는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.