En ES6, es posible definir clases anónimas y crear instancias de ellas inmediatamente. Si bien esta sintaxis puede parecer atractiva al principio, es fundamental comprender sus riesgos y por qué se debe evitar en general.
Para crear una instancia de una clase anónima directamente, utilizamos la siguiente sintaxis:
var entity = new class { constructor(name) { this.name = name; } getName() { return this.name; } }('Foo');
Detrás de escena, esto da como resultado la creación de una nueva función constructora y un objeto prototipo para cada instanciación. Esto significa que varios objetos creados con este método no compartirán ningún beneficio de la herencia de clases o las relaciones prototípicas.
Además, este enfoque socava los intentos de crear objetos únicos utilizando clases anónimas. Aún se puede acceder a la función constructora y utilizarla para crear instancias adicionales, lo que anula el comportamiento singleton previsto.
A la luz de estas advertencias, se recomienda encarecidamente evitar el uso de clases anónimas instanciadas inmediatamente. Los literales de objetos más simples ofrecen una alternativa más eficiente y directa:
var entity = { name: 'Foo', getName() { return this.name; } };
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3