0756Name_Not_Found
2018/03/17(土) 23:46:30.59ID:???イベントハンドラがメモリリークするのは何故かと言うと
var element = document.getElementById('id');
element.addEventListener('click', function() {
element.style.color = 'red';
},false);
みたいなコードを書くと、内部のelement.styleのelementが
外側のelement.addEventListenerのelementを参照して循環参照状態になるから
イベントハンドラがelementを掴んじゃってるから、elementを消すだけじゃ
循環参照になってしまうからメモリリークになる
一応今のブラウザはこの問題は解決されたことになってるが。
jQueryの場合は通常以下のような感じで書くので、循環参照することはないのでメモリリークもしない
(だってそこに有るのはオブジェクトではなくただのセレクタ文字列だもの)
$('#id').on('click', function() {
$(this).color({color: 'red'});
// $('#id').color({color: 'red'});
})