Maison > interface Web > js tutoriel > le corps du texte

Pouvez-vous créer des fonctions nommées dynamiquement en JavaScript sans utiliser « eval() » ?

Linda Hamilton
Libérer: 2024-11-11 16:51:03
original
332 Les gens l'ont consulté

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

Création de fonction dynamique sans évaluation

Question : Est-il possible de créer une fonction avec un nom déterminé par l'exécution sans recourir à eval() et en utilisant uniquement du JavaScript pur ?

Réponse pour ECMAScript 2015 :

Oui, ES2015 introduit une solution. Les expressions de fonction anonymes affectées aux propriétés d'objet héritent désormais du nom de propriété comme nom de fonction. Ceci peut être combiné avec des noms de propriétés calculés, permettant la création de fonctions avec des noms dynamiques.

Exemple :

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)
Copier après la connexion

Dans ES2015, cette méthode garantit que la fonction a un nom et qu'elle apparaît dans les traces de pile dans les débogueurs. Cependant, notez qu'Edge et Safari peuvent ne pas afficher le nom de la fonction dans les traces de pile.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal