O que há de errado com uma classe JavaScript cujo construtor retorna uma função ou um objeto

Quando eu usonew para manter uma instância de uma determinada classe, obtive a instância real. Quando a função construtora tem um valor de retorno, onew sentença fornece a instância real também. No entanto, quando o construtor retorna, não consigo obter a instância. Em vez disso, recebo o construtor. Eu perambulo o que há de errado nisso.

Aqui está o meu fragmento de código de teste:

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

Como consideramos, na maioria das situações, não faz sentido retornar uma função como essa. No entanto, por que o JS tem esse recurso? Existe alguma consideração ao projetar JS? Ou é apenas um bug do JS?

questionAnswers(4)

yourAnswerToTheQuestion