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

Pouvez-vous créer des fonctions nommées au moment de l'exécution en JavaScript sans « eval » ?

Linda Hamilton
Libérer: 2024-11-12 18:21:02
original
865 Les gens l'ont consulté

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

Fonctions nommées à l'exécution sans évaluation en JavaScript

Est-il possible de créer une fonction JavaScript avec un nom déterminé au moment de l'exécution, sans utiliser d'évaluation ou de fonctionnalités non conventionnelles spécifiques au moteur ? Oui, cela est désormais possible avec ECMAScript 2015 (ES6) et au-delà.

Solution ES6 : noms de propriétés calculés

Dans ES6, une expression de fonction anonyme affectée à une propriété d'objet prend le nom de celle-ci. propriété. Cela peut être combiné avec des noms de propriétés calculés pour nommer une fonction sans nouvelle fonction ni évaluation. Par exemple :

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

Cela crée une fonction nommée "foo###" où ### est un nombre aléatoire de 1 à 3 chiffres.

Visibilité du nom de la fonction

La propriété name de la fonction reflétera le nom dynamique. La note de compatibilité dans l'extrait de code ci-dessus fait référence au fait qu'Edge et Safari n'affichent actuellement pas le nom 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