Maison  >  Article  >  interface Web  >  Quand éviter l’instanciation immédiate de classes anonymes ?

Quand éviter l’instanciation immédiate de classes anonymes ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-20 12:05:02460parcourir

When to Avoid Immediate Instantiation of Anonymous Classes?

Instanciation immédiate de classes anonymes : une mise en garde

Dans ES6, il est possible de définir des classes anonymes et de les instancier immédiatement. Bien que cette syntaxe puisse paraître attrayante au premier abord, il est crucial de comprendre ses pièges et pourquoi elle doit généralement être évitée.

Pour instancier directement une classe anonyme, nous utilisons la syntaxe suivante :

var entity = new class {
    constructor(name) { this.name = name; }
    getName() { return this.name; }
}('Foo');

En coulisses, cela se traduit par la création d'une nouvelle fonction constructeur et d'un objet prototype pour chaque instanciation. Cela signifie que plusieurs objets créés à l'aide de cette méthode ne partageront aucun avantage de l'héritage de classe ou des relations prototypiques.

De plus, cette approche sape les tentatives de création d'objets singleton à l'aide de classes anonymes. La fonction constructeur est toujours accessible et utilisée pour créer des instances supplémentaires, annulant ainsi le comportement singleton prévu.

À la lumière de ces mises en garde, il est fortement recommandé d'éviter d'utiliser des classes anonymes immédiatement instanciées. Les littéraux d'objet plus simples offrent une alternative plus efficace et plus simple :

var entity = {
    name: 'Foo',
    getName() { return this.name; }
};

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!

Déclaration:
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