Я очень смущен тем, как работают конструкторы в Javascrpt; несмотря на использование языка в течение нескольких лет (в основном, как будто это полуприватная версия LISP), я хотел бы узнать больше о том, как объекты должны работать в нем.
С учетом этого кода:
function Foo(x) {
return {
bar: function() { return x; }
};
}
В чем разница между вызовами myFoo = Foo(5)
и myFoo = new Foo(5)
? Или, другими словами, что именно делает конструктор в Javascript?