Мне любопытно, что еще ключевое слово 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 мс), на больших объектах все еще значительно быстрее?
[изменить]
Другое дело, что на самом деле большие конструкторы объектов имеют возврат в нижней части функции (у него будет большое количество локальных функций) или несколько таких .bar =... в верхней части функции больше удобочитаемый? Что считается хорошим соглашением?
var MAIN = newfunction() {
this.bar = ...
// Lots of code
}();
var MAIN2 = function() {
// Lots of code
return {
bar: ...
}
}();