Есть несколько кодов и я не могу понять суть, и определить где происходит утечка памяти.
а) var bar; function foo(arg) { bar = ‘something’ } foo();
б) var obj = {}; function foo(arg) { this.bar = ‘something’ } foo.call(obj, ‘not used arg’);
в) var obj = {}; function foo(arg) { this.bar = ‘something’ } foo.call(window, ‘not used arg’);
tanuxa2022, ну у современных компилляторов очень нелегко вызвать утечку памяти. Если же говорить об устаревшем - то в третьем варианте засоряется глобальная область видимости, что будет мешать GC удалять неиспользуемые переменные.
Я не специалист в JS. И я подозреваю что там - полно всяких хитростей и прочих тулов которые могут дать подсказку. Но с точки зрения back-end разработки я-бы сказал что утечка - это ситуация когда в памяти удерживаются ресурсы которые уже не нужны для вычислений но тем не меннее эти ресурсы удерживаются каким-то глобальным объектом, время жизни которого слишком велико чтобы была ощутима польза от этих ресурсов.