このコード サンプルは、特定の無名のベンダーのドキュメントで見られます。スクリプトを非同期的にロードし、その後関数を呼び出すように見えます。if-undefined チェックが明らかなエラーを防ぐことはわかっていますが、これは完全に間違っているわけではありませんか?
IE8/9 では正しく動作すると思いますが、LOADER_URL スクリプトが読み込まれて実行されるまで実行がブロックされます。そして、非同期属性をサポートしている他の多くのブラウザを信じています。これにより、インラインブロックがifブロック内のコードを実行するのはごく一部になります。ドキュメントには、「タグは非同期であり、ページの読み込みが遅くなることはありません」と記載されています。
<script type="text/javascript" src="LOADER_URL" async="true"></script>
<script type="text/javascript">
if (typeof (OBJECT_DEFINED_IN_LOADER_URL) != "undefined") { OBJECT_DEFINED_IN_LOADER_URL.Load(false); }
</script>
ドキュメントの以前のバージョンを見ると、非同期属性の提案がなく、この主張もしていませんでした。一部のテクニカル ライターは、すべてのブラウザーで適切にテストせずに、「はい、それで動作します」と言い間違えたのでしょうか? IE <= 9 では、常に動作します。そして、非同期コードはデバッグするのがとても楽しいので...多分それは彼らのために働いた...
それは私の疑いです:)