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?