«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Можете ли вы создать функции с именами во время выполнения в JavaScript без eval?

Можете ли вы создать функции с именами во время выполнения в JavaScript без eval?

Опубликовано 15 ноября 2024 г.
Просматривать:221

Can You Create Runtime-Named Functions in JavaScript Without `eval`?

Функции с именами во время выполнения без Eval в JavaScript

Можно ли создать функцию JavaScript с именем, определенным во время выполнения, без использования eval или нетрадиционных функций, специфичных для движка ? Да, теперь это возможно в ECMAScript 2015 (ES6) и более поздних версиях.

Решение ES6: имена вычисляемых свойств

В ES6 выражение анонимной функции, присвоенное свойству объекта, принимает имя этого свойства. свойство. Это можно комбинировать с вычисленными именами свойств, чтобы назвать функцию без новой функции или оценки. Например:

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

При этом создается функция с именем «foo###», где ### — случайное число из 1–3 цифр.

Видимость имени функции

Свойство name функции будет отражать динамическое имя. Примечание о совместимости в приведенном выше фрагменте кода относится к тому факту, что Edge и Safari в настоящее время не отображают имя в трассировках стека.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3