私は今日この要点に出くわしました、そしてコメントの中で著者はそれを述べました
var log = document.getElementById('log');
log
JavascriptではDOM要素へのアクセスに使用できるため、不要です。これはすべてのブラウザに当てはまりますか?このテクニックの名前/リファレンスはありますか?
私は今日この要点に出くわしました、そしてコメントの中で著者はそれを述べました
var log = document.getElementById('log');
log
JavascriptではDOM要素へのアクセスに使用できるため、不要です。これはすべてのブラウザに当てはまりますか?このテクニックの名前/リファレンスはありますか?
Internet Explorerでは、IDがグローバル変数になり、その名前でどこからでもアクセスできるようになります。
私はこの「機能不全」を悪いことだと思っています。
私はそれのすべての機能と側面を思い出すわけではありません、そして私はそれが決して起こらなかったふりをするために最善を尽くします。
つまり、IEのみの「機能」-無視するのが最適です。詳細については、この記事をお読みください。
驚いたことに、これは実際にはHTML5仕様に含まれているので、はい、機能します。いいえ、提案されているレガシー機能ではありません(少なくとも、以前はIEのみのトリックでした)。
ここで仕様を読むことができます、 http://www.whatwg.org/specs/web-apps/current-work/#named-access-on-the-window-object
私はそれが実際に名前空間を乱雑にし、それを使用しないように提案する自由をとることに同意します-しかしそれはすべての主要なブラウザで動作します!
これは疑わしい「機能」であり、何にも使用すべきではありません。グローバル状態とグローバルスコープの変数を紹介します。これらは、どのアプリケーションでも避けるべき主要なポイントの1つであり、さらに重要なことに、InternetExplorerと一部のバージョンのChromeでのみ機能するようです。ブラウザはDOMにアクセスする必要があるだけでなく、log
事前に名前が付けられた変数を探す必要があるため、パフォーマンスが低下することはほぼ確実です。
最新のブラウザの新しいバージョンでは機能する可能性がありますが、古いバージョンでは正常に処理されません。サイトを古いブラウザで動作させたい場合は、document.getElementByIdを使用して実行してください。