Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Область видимости и сборщик мусора (https://javascript.ru/forum/misc/59052-oblast-vidimosti-i-sborshhik-musora.html)

GarikFF 24.10.2015 15:13

Область видимости и сборщик мусора
 
Добрый день.
Собственно, почитал про сборщик мусора на MDN, но не совсем понял как он взаимодействует с областями видимости. Вопрос такой:
правильно ли я понимаю, что после выхода из фукнции все переменные ее области видимости уничтожаются сборщиком? и правильно ли я понимаю, что в таком случае оформлять код в виде фукнций гораздо экономичнее с точки зрения памяти, чем фигачить все в глобальном скопе?
Например, этот код будет хуже:
var a = 1,
     b = 2;
 
alert(a+b);

чем этот:
function myFunc()
{
    var a = 1,
          b = 2;
        
    return a + b;
}

alert(myFunc());

EmperioAf 24.10.2015 16:30

Цитата:

Сообщение от GarikFF
оформлять код в виде фукнций гораздо экономичнее с точки зрения памяти, чем фигачить все в глобальном скопе?
Например, этот код будет хуже:

Капитан очевидность? :)
Я на этом форуме видел как некто получил минус десять в репу за то, что писал в глобал

GarikFF 24.10.2015 17:06

Цитата:

Сообщение от EmperioAf (Сообщение 393014)
Капитан очевидность? :)
Я на этом форуме видел как некто получил минус десять в репу за то, что писал в глобал

ну, я как-то естественным путем дошел до независимых функций и объектов, хотя начал так делать не потому, что задумывался о памяти) просто сейчас я хочу лучше понять, как это работает.

Safort 24.10.2015 20:45

GarikFF,
Цитата:

и правильно ли я понимаю, что в таком случае оформлять код в виде фукнций гораздо экономичнее с точки зрения памяти, чем фигачить все в глобальном скопе?
Да.

Safort 24.10.2015 20:49

Цитата:

Сообщение от EmperioAf (Сообщение 393014)
Капитан очевидность? :)

Капитан очевидность утверждает что-то, а не спрашивает.
//Ваш К.О.

Цитата:

Сообщение от EmperioAf (Сообщение 393014)
Я на этом форуме видел как некто получил минус десять в репу за то, что писал в глобал

Это, скорее всего, из-за того, что ты запостил тот код, как решение для какого-то новичка, чем помог распространению плохого стиля программирования.

EmperioAf 24.10.2015 22:54

Цитата:

Сообщение от Safort
Это, скорее всего, из-за того, что ты запостил тот код, как решение для какого-то новичка, чем помог распространению плохого стиля программирования.

я ещё не получал минусов на этом форуме :)
мой код в каждой теме носит характер примера. Вы считаете, что в топиках на форуме лучше не выносить в глобал объявление переменных вида:
var elem = document.querySelector('.some-element');

?

P.s. у вас есть предвзятое отношение ко мне? Я вроде бы не отвечаю в темах, в которых требуется что-нить кроме работы с DOM-деревом.

Safort 24.10.2015 23:49

EmperioAf,
Цитата:

я ещё не получал минусов на этом форуме :)
Оу, прошу прощения, невнимательно прочитал.

Цитата:

P.s. у вас есть предвзятое отношение ко мне? Я вроде бы не отвечаю в темах, в которых требуется что-нить кроме работы с DOM-деревом.
Нет, я нормально к тебе отношусь.


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