En programmation, il peut être utile de créer des objets avec des noms de propriétés qui ne sont connus qu'au moment de l'exécution. Cet article aborde le défi de l'initialisation d'un objet avec des noms de clés indirects (non littéraux).
Traditionnellement, les objets JavaScript sont initialisés avec des noms de propriétés fixes et littéraux :
var myAppConfig = { iconMap: { "phone-type": "icon-phone", "agent-type": "icon-headphones" } };
Cependant, dans certains scénarios, des noms de propriétés dynamiques sont requis. Par exemple, les noms de propriétés peuvent être stockés dans un objet différent.
Si vous utilisez ES6 ou un transpileur comme Babel, vous pouvez utiliser des noms de propriétés calculés :
var iconMap = { [KEYS.PHONE_TYPE]: 'icon-phone', [KEYS.AGENT_TYPE]: 'icon-headphones' };
Dans cette syntaxe, le nom de la propriété est mis entre crochets et évalué comme une expression. La valeur de KEYS.PHONE_TYPE est utilisée comme nom de propriété pour la première paire clé-valeur.
En conséquence, l'objet iconMap sera initialisé avec les noms de propriétés dynamiques attendus :
{ 'phone-type': 'icon-phone', 'agent-type': 'icon-headphones' }
Cette approche vous permet de créer des objets avec des noms de propriété non littéraux au moment de l'exécution, offrant ainsi une plus grande flexibilité et un plus grand code adaptabilité.
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!