これは、パフォーマンスの問題というよりも利便性の問題です (ただしdocument.head
、メリットはほとんどありません)。好きな方を使用するか、一方を他方へのフォールバックとして使用します (例のコードのように)。document.head
IE 6-8 ではサポートされていないため、フォールバックを使用することは賢明です。
すぐに非推奨になる可能性は低いgetElementsByTagName
ため、これはフォールバックを提供するのが良い例ではありません。より詳細なルートを単独で安全に使用して、将来のサポートを楽しむことができます.
これらのタイプのより良い例は、イベントであり、古いブラウザーと比較して、最新のブラウザーでイベントがどのように渡されるかです。次のようなものを目にすることは珍しくありません。
function callback (event) {
var id = (event || window.event).target.id;
}
ただし、この場合、そのwindow.event
部分はレガシー サポートに必要です。event
オブジェクトがの場合undefined
、イベントはwindow
オブジェクトのメンバーであると見なされます。ブラウザが成熟するにつれて、それはもはや重要でwindow.event
はなくなり、代わりにこれらのテストが全会一致で戻ってきevent.target.id
ます。
繰り返しますが、あなたのケースは少し異なります.getElementsByTagName
おそらく廃止されたり消えたりすることはないでしょうwindow.event
.