Création dynamique d'objets dans JavaScript ES6
Des difficultés à construire des objets à partir de noms de classe à l'aide d'ES6 peuvent être rencontrées lors de l'adoption d'une approche traditionnelle. Cet article vise à résoudre ce problème et à fournir une méthode efficace pour créer des objets de manière dynamique à l'aide de la syntaxe ES6.
L'extrait de code précédent tente d'utiliser une usine pour créer des objets en fonction de leurs noms de classe. Cependant, une erreur est rencontrée en raison du référencement des classes via l'objet global « window ».
Pour résoudre ce problème, il est recommandé de stocker les objets de classe eux-mêmes plutôt que leurs noms dans l'objet « specColumn » de l'usine. Cela garantit que les classes sont accessibles sans dépendre de leur disponibilité globale.
De plus, convertir l'usine en objet au lieu d'une classe peut être plus approprié compte tenu de son scénario d'utilisation de type singleton. Voici le code mis à jour :
export class Column {} export class Sequence {} export class Checkbox {} export const columnFactory = { specColumn: { __default: Column, // <-- Class object __sequence: Sequence, // <-- Class object __checkbox: Checkbox // <-- Class object }, create(name, ...args) { let cls = this.specColumn[name] || this.specColumn.__default; return new cls(...args); } };
En implémentant ces modifications, il devient possible de créer des objets de manière dynamique en utilisant la syntaxe ES6.
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!