>웹 프론트엔드 >JS 튜토리얼 >JavaScript에서 함수 이름을 어떻게 검색할 수 있나요?

JavaScript에서 함수 이름을 어떻게 검색할 수 있나요?

DDD
DDD원래의
2024-10-26 05:42:03544검색

How Can You Retrieve a Function's Name in JavaScript?

해당 범위 내에서 함수 이름 액세스

함수 자체 내에서 함수 이름을 검색하는 기능은 JavaScript에서 유용한 기술입니다. 그러나 내부에서 함수 이름에 액세스할 때 함수 이름을 쉽게 사용할 수 없기 때문에 이는 어려울 수 있습니다.

ES6 솔루션:

ES6에서는 함수 이름에 액세스하는 것이 간단합니다.

<code class="javascript">const getFunctionName = () => myFunction.name;</code>

ES5 솔루션:

ES5의 경우 다음 접근 방식을 권장합니다.

<code class="javascript">function getFunctionName(func) {
  const funcStr = func.toString();
  const name = funcStr.substring('function '.length, funcStr.indexOf('('));
  return name;
}</code>

Function.caller 사용( 권장하지 않음):

Function.caller는 발신자 이름에 액세스하기 위한 비표준 솔루션을 제공합니다. 그러나 잠재적인 호환성 문제와 엄격 모드에서의 지원 중단으로 인해 피해야 합니다.

정규식 기반 솔루션:

또 다른 효율적인 ES5 접근 방식은 정규식을 사용하는 것입니다. :

<code class="javascript">const getFunctionName = (func) => /function\s+([a-zA-Z$][a-zA-Z$0-9]+)/.exec(func.toString())[1];</code>

예:

제공된 코드 조각을 예로 사용하겠습니다.

<code class="javascript">var ns.parent = function() {
  // at this point, i want to know who the child is that called the parent
  // ie
  console.log(getFunctionName(this));
}

var obj = new ns.parent.child();</code>

이 결과는 "newFunc"입니다. newFunc는 상위 함수를 호출한 함수이기 때문입니다.

위 내용은 JavaScript에서 함수 이름을 어떻게 검색할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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