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