Интересно, правда не очень представляю прикладного применения.
Зато я узнал, что можно вот так вот сделать:
function A(flag) {
this.a = 1;
if(flag == 1) return {c: 3}; // typeof == "object"
if(flag == 2) return 4; // typeof != "object"
}
A.prototype.b = 2;
console.log(new A()); // {a:1, b: 2}
console.log(new A(1)); // {c: 3}
console.log(new A(2)); // {a:1, b: 2}