Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.10.2015, 06:12
zig zig вне форума
Интересующийся
Отправить личное сообщение для zig Посмотреть профиль Найти все сообщения от zig
 
Регистрация: 02.03.2011
Сообщений: 17

Стрелочные функции и утечки памяти
Как известно, функции вида ()=>{} при своём объявлении биндятся на текущий внешний this. В некоторых ситуациях это действительно удобно.

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

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

Например:
var min, max;

var app = {
    init: function() {
        min = (x, y) => y < x ? y : x;
        max = (x, y) => y > x ? y : x;
    }
};

app.init();
app = undefined;
// по идее, даже не смотря на отсутствие в стрелочных функциях обращения к this,
// перезаписанный объект app всё равно существует в их замыканиях, хотя нам это не нужно.

Последний раз редактировалось zig, 03.10.2015 в 07:13.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Анонимные\именованные функции - экономия памяти при создании? nevro Общие вопросы Javascript 3 17.07.2015 15:19
Утечки памяти при addEventListener _0_ Events/DOM/Window 8 04.12.2014 22:45
замыкания и утечки памяти newobject Общие вопросы Javascript 1 18.07.2014 12:39
Утечки памяти при использовании JSONP в IE 9 evgkar AJAX и COMET 3 28.12.2011 19:40
Утечки памяти: как сделать ? Draeden Events/DOM/Window 10 30.08.2009 18:16