¿Cuáles son las circunstancias exactas para las cuales una declaración de devolución en Javascript puede devolver un valor distinto de this
cuando se invoca un constructor con la palabra clave new
?¿Qué valores puede devolver un constructor para evitar devolver esto?
Ejemplo:
function Foo() {
return something;
}
var foo = new Foo();
Si no me equivoco, si something
es un no-función primitiva, serán devueltos this
. De lo contrario, se devuelve something
. ¿Es esto correcto?
IOW, ¿qué valores puede something
llevar a causar (new Foo() instanceof Foo) === false
?
relacionada: [? Lo que se devuelve desde un constructor] (http://stackoverflow.com/q/3350215/1048572) – Bergi