>웹 프론트엔드 >JS 튜토리얼 >`eval()`을 사용하지 않고 JavaScript에서 동적으로 이름이 지정된 함수를 만들 수 있습니까?

`eval()`을 사용하지 않고 JavaScript에서 동적으로 이름이 지정된 함수를 만들 수 있습니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-11 16:51:03362검색

Can You Create Dynamically Named Functions in JavaScript Without Using `eval()`?

평가 없이 동적 함수 생성

질문: 런타임에 결정된 이름으로 함수를 생성하는 것이 가능합니까? eval()을 사용하지 않고 순수한 JavaScript만 사용합니까?

ECMAScript 2015에 대한 답변:

, ES2015는 솔루션을 도입합니다. 객체 속성에 할당된 익명 함수 표현식은 이제 속성 이름을 함수 이름으로 상속합니다. 이는 계산된 속성 이름과 결합되어 동적 이름을 가진 함수를 생성할 수 있습니다.

예:

const dynamicName = "foo" + Math.floor(Math.random() * 1000);
const obj = {
    [dynamicName]() {
        throw new Error();
    },
};
const f = obj[dynamicName];

console.log("Function's `name` property: " + f.name); // Logs: "foo###" (where ### is 1-3 digits)

ES2015에서 이 방법은 함수에 이름이 있고 해당 함수가 디버거의 스택 추적에 나타납니다. 하지만 Edge와 Safari에서는 스택 추적에 함수 이름이 표시되지 않을 수 있습니다.

위 내용은 `eval()`을 사용하지 않고 JavaScript에서 동적으로 이름이 지정된 함수를 만들 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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