Was macht das neue Keyword unter der Haube?

Ich bin gespannt was da noch dasnew Schlüsselwort tut im Hintergrund abgesehen davon, was das @ ändethis scope bezieht sich auch.

Zum Beispiel, wenn wir mit dem @ vergleichnew Schlüsselwort, mit dem ein Funktionssatz Eigenschaften und Methoden für ein Objekt festlegt, damit nur eine Funktion ein neues Objekt zurückgibt. Gibt es etwas, das das neue Objekt zusätzlich bewirkt?

Und das ist vorzuziehen, wenn ich nicht mehrere Objekte aus dem Funktionskonstruktor erstellen möchte

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;
  }
}();

Der Firebug-Profiler teilt mir mit, dass die Verwendung des neuen Schlüsselworts etwas schneller ist (2 ms anstelle von 3 ms

[Bearbeiten

Eine andere Sache ist, dass bei sehr großen Objekten Konstruktoren am unteren Rand der Funktion einen Return haben (es wird eine große Anzahl lokaler Funktionen geben) oder einige this.bar = ... am oberen Rand der Funktion besser lesbar sind? Was ist eine gute Convention?

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

    // Lots of code
}();

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

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

Antworten auf die Frage(4)

Ihre Antwort auf die Frage