JavaScript の循環参照の概念と、メモリ リークを防ぐために循環参照を回避することの重要性は理解していますが、クロージャーまたはプロトタイプのメンバーである関数をイベント ハンドラーに割り当てると、ガベージ コレクションにどのような影響があるかについての情報を見つけることができませんでした。
たとえば、次のいずれかを書いたとします。
var o = {};
o.var = 10000000;
o.func = function() { /*Do something that does not involve o.var*/ };
function p() { }
p.prototype.var = 100000;
p.prototype.func = function () { /*Do something that does not involve p.var*/ };
...そして、次のいずれかを実行しました。
var div = document.getElementByID('div');
div.onclick = o.func;
var instance_of_p = new p();
var div = document.getElementByID('div');
div.onclick = instance_of_p.func;
func() を DOM イベント ハンドラーに割り当てると、オブジェクト全体が GC によって収集されなくなりますか?