Как стать автором
Обновить
0
0

Пользователь

Отправить сообщение
а как в vue крутить хвосты функциональным коровам?

codesandbox.io/s/kind-colden-7bviy

и я имею в виду именно выкрутасы с функциями, а не реализацию конкретно этой зашитой разметки.

пс: я понимаю, что искусственный пример жестковат для понимания, приношу извинения за бобо глазкам.
если я правильно понимаю
setInterval(unused, 1000);

просто кладет unused в gc-root, а в примере шла речь об утечках через замыкания.
проблема отсутствия утечки кроется в том, что современный браузер выпиливает неиспользуемые переменные из замыканий. то есть если раньше все утекало через функцию someMethod, то теперь чтобы пример завелся, нужно явно указать unused в someMethod
var theThing = null;
var replaceThing = function () {
  var originalThing = theThing;
  var unused = function () {
    if (originalThing) // ссылка на originalThing
      console.log("hi");
  };
  theThing = {
    longStr: new Array(1000000).join('*'),
    someMethod: function () {
      console.log("message");
      unused; //ссылка на unused
    }
  };
};
setInterval(replaceThing, 1000);

но тогда unused становится не таким уж unused)

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность