Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вызов функции через new Object() (https://javascript.ru/forum/misc/56075-vyzov-funkcii-cherez-new-object.html)

RblSb 28.05.2015 17:40

Вызов функции через new Object()
 
К сожалению ничего не смог найти по этому вопросу. Что происходит с анонимным объектом, после создания? Например, я вызываю функцию так: new Main().loader(), что будет с памятью если делать вызов так постоянно? Еще пример, вызов new Date() в цикле, без сохранения в локальную переменную.
И еще, стоит ли создавать все объекты в глобальных переменных, если они постоянно контактируют между собой?

vasa_c 28.05.2015 19:24

1. Должен сдохнуть. Если в loader() ссылок не осталось.

2. Не стоит.

indeterm 28.05.2015 19:27

Цитата:

Сообщение от RblSb
Что происходит с анонимным объектом, после создания?

Удаляется GC, естественно. Но делать так не надо без нужды, будет оверхед
Цитата:

Сообщение от RblSb
И еще, стоит ли создавать все объекты в глобальных переменных, если они постоянно контактируют между собой?

ЯННП

indeterm 28.05.2015 19:30

Цитата:

Сообщение от vasa_c
Если в loader() ссылок не осталось.

ссылок куда на new Main что-ли? Как ты себе это представляешь?

Только если вот так, как то
Main=function(variable){
 this.vairable=variable
 this.loader=function(){tmp=this}
}

new Main(1).loader()
console.log(tmp)

//  { vairable: 1, loader: [Function] }


Да и то, сама ссылка то не в самом лоадере будет, а где то в замыкании, глобале, стороннем объекте, etc. Это еще умудриться надо.

RblSb 31.05.2015 11:38

Цитата:

Сообщение от vasa_c (Сообщение 372976)
1. Должен сдохнуть. Если в loader() ссылок не осталось.

2. Не стоит.

По поводу второго, почему? Зачем в разных местах создавать объекты с функцией вывода текста, если можно сделать объект глобальным? Я не знаю, как иначе адекватно организовать структуру приложения. И есть ли какие-нить примеры приложений с ооп и без фреймворков?

kostyanet 31.05.2015 19:12

Да оне имели ввиду загнать вашу апликуху за скобки и все. Внутри скобок уже все что может понадобиться - будет "глобальным".

Так вот, это если вы ее дистрибутить собираетесь. Кто дистрибутит - тот загоняет, а хозяин страницы и без скобок обходится.


Часовой пояс GMT +3, время: 13:21.