次のコードがバージョン8より前のIEでメモリリークを引き起こすと主張されているオンラインJavaScriptチュートリアルを読んでいます。
function setHandler() {
var elem = document.getElementById('id')
elem.onclick = function() { /* ... */ }
}
作成者は、メモリリークを防ぐための修正も提供しました。
function setHandler() {
var elem = document.getElementById('id')
elem.onclick = function() { /* ... */ }
elem=null;
}
元のコードがメモリリークを引き起こすのはなぜですか?また、修正によってそれを防ぐにはどうすればよいですか?