No entiendo exactamente la diferencia entre clases y objetos constructores de JS. Por lo que veo que puede hacer cosas muy similares con ellos como la definición de funciones o propiedades.
Pero ¿qué es exactamente la diferencia y cuándo usar cuál? (Como es el constructor de la clase similar a un constructor de objetos?)
class
la sintaxis es en su mayoría (pero no del todo) el azúcar sintáctica para crear funciones constructoras y rellenando el objeto de su prototype
propiedad. Puede hacer casi todo lo que class
hace escribir funciones constructoras de forma explícita y añadiendo propiedades a su prototype
propiedad y el uso de algunos métodos en el ES2015 + Reflect
objeto, sino que está haciendo lo que es mucho más prolija y propenso a errores. (El número de cosas que sólo se puede hacer con class
la sintaxis va a aumentar en poco tiempo como los campos y métodos particulares propuestas maduran.) Me he dado una visión general de cómo class
la sintaxis puede ser emulada con construcciones anteriores en mi respuesta a ¿Qué beneficios ciervas ES2015 (ES6) class
sintaxis proporcionar? Aquí .
En cuanto al momento de usar el cual, es sobre todo una cuestión de estilo para usted y su equipo para decidir. Incluso para las cosas que no se puede literalmente hacer sin sintaxis de clase (como campos privados, lo que probablemente avanzará a la especificación de estar en algún momento de este año y estar en ES2021), se pueden hacer cosas similares en otras formas.
Pero:
- Si lo que estás haciendo requiere
class
la sintaxis (por ejemplo, si desea utilizar campos privados, una vez que se añaden [o ahora a través de transpilation]) y quiere hacer esa cosa específicamente en lugar de otra cosa que es similar a ella, a continuación, tendrá que utilizarclass
la sintaxis. - Si no, es en gran medida una cuestión de estilo para usted y su equipo para decidir.