Я знаю, что это не рекомендуемый способ сделать это, но если я объявлю следующие функции, а затем вызову их как конструкторы, какова будет разница (если таковая имеется) между результирующими объектами?
function Something() {
    this.foo = "bar";
}
function something2() {
    var that = {};
    that.foo = "bar";
    return that;
}
var x = new Something();
var y = new something2();
var z = something2();
т.е. что будет отличаться между x, y и z здесь?
Не было бы something2 намного лучше писать конструктор, так как использование new или не повлияет на результат функции?
Кстати, something2 должен быть капитализирован здесь? (Я предполагаю, что с тех пор, как Крокфорд настолько непреклонен в капитализации, поскольку функции будут сжимать глобальное пространство имен...)