Я знаю, что это не рекомендуемый способ сделать это, но если я объявлю следующие функции, а затем вызову их как конструкторы, какова будет разница (если таковая имеется) между результирующими объектами?
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
должен быть капитализирован здесь? (Я предполагаю, что с тех пор, как Крокфорд настолько непреклонен в капитализации, поскольку функции будут сжимать глобальное пространство имен...)