¿Qué tiene de malo una clase de JavaScript cuyo constructor devuelve una función o un objeto?

Cuando usonew Para instaurar una instancia de cierta clase, obtuve la instancia real. Cuando la función constructora tiene un valor de retorno, elnew la oración da la instancia real también. Sin embargo, cuando el constructor regresa, no puedo obtener la instancia. En cambio, obtengo el constructor. Me pregunto qué hay de malo en esto.

Aquí está mi fragmento de código de prueba:

function foo() {
    this.x = 1;
    return foo;
}
console.log(new foo()); // prints the defination of foo

Como consideramos, en la mayoría de las situaciones, no tiene sentido devolver una función como esta. Sin embargo, ¿por qué JS tiene tal característica? ¿Hay alguna consideración al diseñar JS? ¿O es solo un error de JS?

Respuestas a la pregunta(4)

Su respuesta a la pregunta