Algunos objetos en Javascript, como Fecha, tienen dos tipos de constructores.
Fecha()
When called as a function, returns a string representation of the current date and time, exactly as new Date().toString() does.nueva fecha()
When called as a constructor, returns a new Date object.https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date#constructor
Para algunos objetos, como Date, que necesito extender, puedo usar class extend para anular el constructor y agregar funcionalidad adicional. Si bien eso funciona muy bien cuando se usa cuando el objeto se inicializa con la new palabra clave, si intenta usar el constructor de tipo de función, falla con
TypeError: el constructor de clase no se puede invocar sin 'nuevo'
Entonces, ¿cómo puede extender un objeto existente para que ambos tipos de constructores sigan siendo viables?