Maison > interface Web > js tutoriel > Comment créer des objets dynamiquement dans JavaScript ES6 à l'aide d'objets de classe ?

Comment créer des objets dynamiquement dans JavaScript ES6 à l'aide d'objets de classe ?

Barbara Streisand
Libérer: 2024-11-15 19:25:02
original
199 Les gens l'ont consulté

How to Create Objects Dynamically in JavaScript ES6 Using Class Objects?

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

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!

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