両者の差が限界であろう。パフォーマンスを向上させるには、DOMに追加するイベントハンドラの数を最小限に抑え、再度必要のないイベントハンドラを削除する必要があります。あなたが投稿した文脈では、削除は意味をなさない。 (連想)配列内の項目を解放するか、または作成したオブジェクトを削除するために使用する必要があります。あなたはあなたの例の中のどちらもしません。
各項目がクリック可能なリストでは、個々の要素ではなく、リストコンテナに1つのイベントハンドラを添付するだけです。ハンドラに渡されたイベントオブジェクトのtargetプロパティを使用して、タップされた実際のリスト項目を見つけることができます。
編集:li.idがクリックされた実際のアイテムを識別するために使用される複数のリスト項目
のための一つのイベントハンドラを使用する方法の例。 'li'に子がある場合は、正しい項目が見つかるまでターゲットのDOMツリーを上る必要があります。
<ul id="list">
<li id="item_1">First Item</li>
<li id="item_2">Second Item</li>
<li id="item_3">Third Item</li>
<li id="item_4">Fourth Item</li>
<li id="item_5">Fifth Item</li>
<li id="item_6">Sixth Item</li>
<li id="item_7">Seventh Item</li>
</ul>
<script>
window.onload(function() {
document.getElementById("list").addEventListener("click",
function(event) { alert("" + event.target.id + " was clicked"); });
});
</script>
パフォーマンス面で問題はありません。 *たぶん*万一一度に数万の要素に対してこれを行うと、微視的な違いがありますが、それはそうではありませんか? –