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à.
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];
Cela crée une fonction nommée "foo###" où ### est un nombre aléatoire de 1 à 3 chiffres.
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.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3