質問とは関係のない理由で、私の同僚はUniversal Module Definitionパターンを使用するスクリプトをロードする必要があります。私たちの環境には通常、AMD ツールがロードされていますが、もっと無関係な理由で、私の同僚は、AMD を介してモジュールを登録するのではなく、グローバルを定義するスクリプトを必要としています。彼らのブランチで現在チェックインされているアプローチは、次のようなものです。
<script>
var backupDefine = define;
define = null;
</script>
<script src="../path/to/some/script/using/UMD.js"></script>
<script>
define = backupDefine;
backupDefine = null;
</script>
私の質問は次のとおりです。これは恐ろしい考えですか? ブラウザーが script タグからスクリプトをロードする方法に保証はありますか?これにより、define の定義解除と定義の復元の間に、UMD ベースのスクリプトのロード以外は何も行われないことが保証されますか? 主にAMDモジュールに基づいた、非常に大きく、非常に重度の非同期アセットロードがあるため、私が懸念しているのは、defineが現在定義されていない断続的な状態で自身を定義しようとしているAMDモジュールです。