Обратите внимание, что в следующем коде ребенок получает ссылку на родителя. Что происходит, когда исходная ссылка на родительскую установку равна нулю? Остается ли родитель, поскольку до сих пор существует активная ссылка от ребенка?Является ли этот Javascript причиной утечки памяти?
Javascript
var parent = function() {
var self = this;
self.runme = function() {
document.getElementById('output').innerText = 'run me';
}
self.child = new child(self);
return self;
}
var child = function(parent) {
var self = this;
var parent = parent;
self.event = function() {
parent.runme();
}
}
var p = new parent();
p.child.event();
p = null;
HTML
<div id="output">
old value
</div>
FIDDLE https://jsfiddle.net/jeljeljel/8fvy5r4f/
Пробовали ли вы запускать любую запись производительности консоли, чтобы посмотреть, как выглядит ваша память? Есть ли конкретная проблема, с которой вы сталкиваетесь, что позволяет предположить, что у вас проблемы с утечкой памяти? – Korgrue
* Что происходит, когда исходная ссылка на родительскую установку установлена на нуль? * - GC очистит ее как можно скорее –
Нет, я просто хочу знать, вызывает ли вообще описанный выше шаблон утечку. –