Что новое ключевое слово делает под капотом?

Мне любопытно, что ещеnew Ключевое слово делает в фоновом режиме, кроме изменения того, чтоthis сфера относится тоже.

Например, если мы сравниваем, используяnew ключевое слово, чтобы заставить функцию установить свойства и методы объекта, чтобы просто заставить функцию возвращать новый объект, есть ли что-то еще, что делает новый объект?

И что предпочтительнее, если я не хочу создавать несколько объектов из конструктора функции

var foo2 = function () {
  var temp = "test";

  return {
    getLol: function () {
      return temp;
    },

    setLol: function(value) {
      temp = value;
    }
  };

}();

var foo = new function () {
  var temp = "test";

  this.getLol = function () {
    return temp;
  }

  this.setLol = function(value) {
    temp = value;
  }
}();

Профилировщик Firebug говорит мне, что использование нового ключевого слова немного быстрее (2 мс вместо 3 мс), на больших объектах новый еще значительно быстрее?

[Редактировать]

Другое дело, что у действительно больших конструкторов объектов возврат в нижней части функции (он будет иметь большое количество локальных функций) или несколько this.bar = ... в верхней части функции более читабельны? Что считается хорошим соглашением?

var MAIN = newfunction() {
    this.bar = ...

    // Lots of code
}();

var MAIN2  = function() {
    // Lots of code

    return {
        bar: ...
    }
}();

Ответы на вопрос(2)

Ваш ответ на вопрос