JavaScript новый объект (функция) по сравнению со встроенным вызовом

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

var object = new function () { 
   var private = "private variable";
   return {
       method : function () { 
           ..dosomething with private;
       }
   }
}

VS

var object = function () {
 ...
}();

В основном, каково различие между использованием НОВОГО здесь и просто вызовом функции сразу после того, как мы определим его?

7
задан Sheldon Ross 5 April 2010 в 22:33
поделиться

2 ответа

Оператор new вызывает вызов функции как функции-конструктора .

Я видел этот паттерн раньше, но не вижу никаких преимуществ от его использования.

Назначением оператора new является создание объекта (значение this внутри конструктора), установка правильного [[Prototype]] внутреннего свойство, чтобы построить цепочку прототипов и реализовать наследование (подробности можно увидеть в операции [[Construct]] ).

Я бы порекомендовал вам использовать шаблон встроенного вызова .

9
ответ дан 6 December 2019 в 23:04
поделиться

Если вы используете функции в качестве обработчиков событий, вы могут возникнуть утечки памяти. Взгляните на некоторые из статей

1
ответ дан 6 December 2019 в 23:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: